Commit 6285bd80 authored by fengruiyu's avatar fengruiyu

Merge branch 'branche_zsf' of http://39.97.65.143:81/android/android_street into branche_zsf

 Conflicts:
	shareSdkLib/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml
	shareSdkLib/build/intermediates/incremental/mergeDebugShaders/merger.xml
	shareSdkLib/build/intermediates/incremental/packageDebugAssets/merger.xml
	shareSdkLib/build/intermediates/incremental/packageDebugResources/compile-file-map.properties
	shareSdkLib/build/intermediates/incremental/packageDebugResources/merger.xml
	shareSdkLib/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt
	shareSdkLib/build/outputs/logs/manifest-merger-debug-report.txt
parents 8ee8adb3 3cb0a246
......@@ -135,7 +135,6 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
testImplementation rootProject.ext.support["junit"]
//下拉刷新
......@@ -174,5 +173,9 @@ dependencies {
implementation(name: 'open_ad_sdk_3.7.0.1', ext: 'aar')
// 广点通广告 腾讯
implementation(name: 'GDTSDK.unionNormal.4.362.1232', ext: 'aar')
//RxPay
implementation 'com.cuieney:rxpay-api:2.2.3'
kapt 'com.cuieney:rxpay-compiler:2.1.1'
implementation 'com.romandanylyk:pageindicatorview:1.0.3'
}
\ No newline at end of file
......@@ -2,25 +2,18 @@ package com.mints.street;
import android.content.Context;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
assertEquals("com.mints.goodnews", appContext.getPackageName());
}
}
\ No newline at end of file
//@RunWith(AndroidJUnit4.class)
//public class ExampleInstrumentedTest {
// @Test
// public void useAppContext() {
// // Context of the app under test.
// Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
// assertEquals("com.mints.goodnews", appContext.getPackageName());
// }
//}
\ No newline at end of file
......@@ -5,15 +5,27 @@
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"
tools:ignore="ProtectedPermissions" />
<uses-permission android:name="android.permission.RECEIVE_USER_PRESENT" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application
android:name="com.mints.street.AppApplication"
......@@ -135,6 +147,30 @@
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="landscape"
tools:replace="android:screenOrientation" />
<!-- WX_APPID必填项 -->
<meta-data
android:name="WX_APPID"
android:value="wx8f26539eabfb04f2" />
<activity
android:name=".wxapi.WXPayEntryActivity"
android:exported="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<!-- 支付宝 -->
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" />
<activity
android:name="com.alipay.sdk.app.H5AuthActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" />
</application>
</manifest>
\ No newline at end of file
......@@ -4,6 +4,7 @@ import android.content.Context
import android.os.StrictMode
import android.os.StrictMode.VmPolicy
import android.util.Log
import com.cuieney.rxpay_annotation.WX
import com.fry.base.base.BaseApp
import com.mints.street.manager.CsjGroMoreManager
import com.mints.street.manager.UmengManager
......@@ -12,6 +13,7 @@ import java.util.concurrent.TimeoutException
/**
* Created by 冯瑞雨 on 2021/7/1.
*/
@WX(packageName = "com.mints.street")
class AppApplication : BaseApp() {
override fun onCreate() {
......@@ -39,6 +41,7 @@ class AppApplication : BaseApp() {
* 三方配置
*/
private fun thirdConfig() {
// 友盟预初始化
UmengManager.preInit()
// GroMore
......
......@@ -26,11 +26,6 @@ public class TTGroMoreAdManagerHolder {
doInit(context);
}
public static void initUnitySdkBanner(Activity activity) {
TTMediationAdSdk.initUnityForBanner(activity);
}
//step1:接入网盟广告sdk的初始化操作,详情见接入文档和穿山甲平台说明
private static void doInit(Context context) {
if (!sInit) {
......
package com.mints.street.api
import com.fry.base.netwrok.HttpManager
import com.mints.street.bean.AwardBean
import com.mints.street.bean.UserBean
import com.mints.street.netwrok.HttpManager
import io.reactivex.Observable
import me.goldze.mvvmhabit.http.BaseResponse
import retrofit2.Response
......
package com.mints.street.main
import android.media.AudioManager
import android.os.Bundle
import android.view.KeyEvent
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
......@@ -16,7 +18,9 @@ import com.mints.street.databinding.ActivityMainBinding
import com.mints.street.main.vr.VRFragment
import com.mints.street.main.my.MyFragment
import com.mints.street.main.home.HomeFragment
import com.mints.street.manager.UmengManager
import me.goldze.mvvmhabit.base.AppManager
import me.goldze.mvvmhabit.utils.ToastUtils
class MainActivity : BaseActivity<ActivityMainBinding, MainViewModel>() {
......@@ -52,8 +56,26 @@ class MainActivity : BaseActivity<ActivityMainBinding, MainViewModel>() {
)
// test
UmengManager.initUm()
}
var oldTime: Long = 0
override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
when (keyCode) {
KeyEvent.KEYCODE_BACK -> {
// 设置为后台
val currentTime = System.currentTimeMillis()
if (currentTime - oldTime < 2 * 1000) {
AppManager.getAppManager().finishAllActivity()
} else {
ToastUtils.showLong("再次点击退出" + getString(R.string.app_name))
oldTime = currentTime
}
}
}
return true
}
}
......
package com.mints.street.manager
import android.text.TextUtils
import com.mints.street.bean.UserBean
import me.goldze.mvvmhabit.utils.SPUtils
import com.tencent.mmkv.MMKV
/**
* Created by 冯瑞雨 on 2021/7/6.
* 描述:管理用户信息
* 作者:孟崔广
* 时间:2021/7/9 14:48
*/
object UserManager {
private val spUtils = SPUtils.getInstance("user")
private const val USER_INFO = "user_info"
private var user :UserBean?=null
class UserManager {
companion object {
/**
* 游客 or 登录用户
*/
private const val IS_TEMP_USER = "is_temp_user"
/**
* 用户ID
*/
private const val USER_ID = "userId"
/**
* 用户CODE_ID
*/
private const val CODE_ID = "codeId"
/**
* 登陆状态ID
*/
private const val TOKEN_ID = "tokenId"
/**
* 手机号
*/
private const val MOBILE = "mobile"
/**
* 姓名
*/
private const val REAL_NAME = "realName"
/**
* 支付宝
*/
private const val ALIPAY_ACCOUNT = "alipay_account"
/**
* 用户金币
*/
private const val USER_GOLD = "user_gold"
/**
* 用户总金币
*/
private const val USER_SUM_GOLD = "user_sum_gold"
/**
* 用户零钱
*/
private const val USER_CASH = "user_cash"
/**
* 是否老用户 true-老用户
*/
private const val USER_OLD = "user_old"
/**
* 猎豹游戏info
*/
private const val GAME_INFO = "game_info"
/**
* 广告隐藏标识
*/
private const val AD_SHOW_FLAG = "ad_show_flag"
/**
* 微信名称
*/
private const val WX_NAME = "wx_name"
/**
* 微信头像
*/
private const val WX_HEADER = "wx_header"
/**
* 微信id
*/
private const val WX_OPENID = "wx_openid"
val INSTANCE: UserManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {
UserManager()
}
}
init {
}
/**
* 保存用户信息
*
* @param userInfo
*/
fun saveUserInfo(userInfo: UserBean) {
val user = userInfo.consumer
val token = userInfo.token
if (token != null) {
MMKV.mmkvWithID(TOKEN_ID).encode(TOKEN_ID, token)
}
if (user != null) {
val mobile: String? = user.mobile
val openid: String? = user.openid
if (mobile == null && openid == null) {
MMKV.mmkvWithID(IS_TEMP_USER).remove(IS_TEMP_USER)
} else {
MMKV.mmkvWithID(IS_TEMP_USER).encode(IS_TEMP_USER, mobile + openid)
}
MMKV.mmkvWithID(USER_ID).encode(USER_ID, user.pk_id.toString())
MMKV.mmkvWithID(CODE_ID).encode(CODE_ID, user.idcode.toString())
MMKV.mmkvWithID(MOBILE).encode(MOBILE, mobile)
MMKV.mmkvWithID(ALIPAY_ACCOUNT)
.encode(ALIPAY_ACCOUNT, user.alipay_account.toString())
MMKV.mmkvWithID(USER_GOLD).encode(USER_GOLD, user.coin.toString())
MMKV.mmkvWithID(USER_CASH)
.encode(USER_CASH, String.format("%.2f", user.surplus))
MMKV.mmkvWithID(USER_SUM_GOLD).encode(USER_SUM_GOLD, user.sumCoin.toString())
MMKV.mmkvWithID(USER_OLD).encode(USER_OLD, !user.isFirstSignInApp)
MMKV.mmkvWithID(WX_NAME).encode(WX_NAME, user.nickname.toString())
MMKV.mmkvWithID(WX_HEADER).encode(WX_HEADER, user.head)
MMKV.mmkvWithID(WX_OPENID).encode(WX_OPENID, openid)
MMKV.mmkvWithID(GAME_INFO).encode(GAME_INFO, user.gameInfo)
MMKV.mmkvWithID(REAL_NAME).encode(REAL_NAME, user.real_name)
}
}
/**
* 单独获取用户id
*/
fun getMobile(): String {
val kv = MMKV.mmkvWithID(MOBILE)
return kv.decodeString(MOBILE, "")
}
/**
* 判断用户是否已登录
*
* @return true为已登录 false 为未登录
*/
fun userIsLogin(): Boolean {
val kv = MMKV.mmkvWithID(IS_TEMP_USER).decodeString(IS_TEMP_USER, "")
return !TextUtils.isEmpty(kv)
}
/**
* 单独获取用户id
*/
fun getUserID(): String {
val kv = MMKV.mmkvWithID(USER_ID)
return kv.decodeString(USER_ID, "")
}
/**
* 获取用户登陆状态
*/
fun getTokenID(): String {
val kv = MMKV.mmkvWithID(TOKEN_ID)
return kv.decodeString(TOKEN_ID, "")
}
/**
* 获取用户邀请码
*/
fun getCodeID(): String {
val kv = MMKV.mmkvWithID(CODE_ID)
return kv.decodeString(CODE_ID, "")
}
/**
* 获取真实姓名
*/
fun getRealName(): String {
val kv = MMKV.mmkvWithID(REAL_NAME)
return kv.decodeString(REAL_NAME, "")
}
/**
* 设置真实姓名
*
* @param name
*/
fun setRealName(name: String?) {
val kv = MMKV.mmkvWithID(REAL_NAME)
kv.encode(REAL_NAME, name)
}
/**
* 是否老用户 true-老用户
*/
fun getUserOld(): Boolean {
val kv = MMKV.mmkvWithID(USER_OLD)
return kv.decodeBool(USER_OLD, false)
}
fun getAdShowFlag(): Boolean {
val kv = MMKV.mmkvWithID(AD_SHOW_FLAG)
return kv.decodeBool(AD_SHOW_FLAG, false)
}
/**
* 设置真实姓名
*
* @param userOld
*/
fun setUserOld(userOld: Boolean) {
val kv = MMKV.mmkvWithID(USER_OLD)
kv.encode(USER_OLD, userOld)
}
/**
* 获取支付宝账户
*/
fun getAlipayAccount(): String {
val kv = MMKV.mmkvWithID(ALIPAY_ACCOUNT)
return kv.decodeString(ALIPAY_ACCOUNT, "")
}
/**
* 设置支付宝账户
*
* @param alipay
*/
fun setAlipayAccount(alipay: String?) {
val kv = MMKV.mmkvWithID(ALIPAY_ACCOUNT)
kv.encode(ALIPAY_ACCOUNT, alipay)
}
fun getUserSumGold(): String {
val kv = MMKV.mmkvWithID(USER_SUM_GOLD)
return kv.decodeString(USER_SUM_GOLD, "")
}
/**
* 获取用户金币/积分
*/
fun getUserGold(): String {
val kv = MMKV.mmkvWithID(USER_GOLD)
return kv.decodeString(USER_GOLD, "")
}
/**
* 设置用户金币/积分
*
* @param gold
*/
fun setUserGold(gold: String?) {
val kv = MMKV.mmkvWithID(USER_GOLD)
kv.encode(USER_GOLD, gold)
}
/**
* 获取用户零钱
*/
fun getUserCash(): String {
val kv = MMKV.mmkvWithID(USER_CASH)
return kv.decodeString(USER_CASH, "")
}
fun getGameInfo(): String {
val kv = MMKV.mmkvWithID(GAME_INFO)
return kv.decodeString(GAME_INFO, "")
}
fun getWxName(): String {
val kv = MMKV.mmkvWithID(WX_NAME)
return kv.decodeString(WX_NAME, "")
}
fun getWxHeader(): String {
val kv = MMKV.mmkvWithID(WX_HEADER)
return kv.decodeString(WX_HEADER, "")
}
fun getWxOpenid(): String {
val kv = MMKV.mmkvWithID(WX_OPENID)
return kv.decodeString(WX_OPENID, "")
}
/**
* 设置用户零钱
*
* @param cash
*/
fun setUserCash(cash: String?) {
val kv = MMKV.mmkvWithID(USER_CASH)
kv.encode(WX_OPENID, cash)
}
fun setGameInfo(gameInfo: String?) {
val kv = MMKV.mmkvWithID(GAME_INFO)
kv.encode(GAME_INFO, gameInfo)
}
fun setWxName(wxName: String?) {
val kv = MMKV.mmkvWithID(WX_NAME)
kv.encode(WX_NAME, wxName)
}
fun setWxHeader(wxHeader: String?) {
val kv = MMKV.mmkvWithID(WX_HEADER)
kv.encode(WX_HEADER, wxHeader)
}
/**
* mobile
*
* @param mobile
*/
fun setMobile(mobile: String?) {
val kv = MMKV.mmkvWithID(MOBILE)
kv.encode(MOBILE, mobile)
}
fun setAdShowFlag(adShowFlag: Boolean) {
val kv = MMKV.mmkvWithID(AD_SHOW_FLAG)
kv.encode(AD_SHOW_FLAG, adShowFlag)
}
fun userLogout() {
MMKV.mmkvWithID(USER_ID).remove(USER_ID)
MMKV.mmkvWithID(CODE_ID).remove(CODE_ID)
MMKV.mmkvWithID(TOKEN_ID).remove(TOKEN_ID)
MMKV.mmkvWithID(REAL_NAME).remove(REAL_NAME)
MMKV.mmkvWithID(IS_TEMP_USER).remove(IS_TEMP_USER)
MMKV.mmkvWithID(ALIPAY_ACCOUNT).remove(ALIPAY_ACCOUNT)
MMKV.mmkvWithID(USER_GOLD).remove(USER_GOLD)
MMKV.mmkvWithID(USER_CASH).remove(USER_CASH)
MMKV.mmkvWithID(USER_OLD).remove(USER_OLD)
MMKV.mmkvWithID(WX_OPENID).remove(WX_OPENID)
MMKV.mmkvWithID(WX_NAME).remove(WX_NAME)
MMKV.mmkvWithID(WX_HEADER).remove(WX_HEADER)
// MMKV.mmkvWithID(GAME_INFO).remove(GAME_INFO)
}
}
\ No newline at end of file
package com.mints.street.model
import com.fry.base.netwrok.HttpManager
import com.mints.street.api.MainApi
import com.mints.street.bean.AwardBean
import com.mints.street.bean.UserBean
import com.mints.street.netwrok.HttpManager
import com.trello.rxlifecycle2.LifecycleProvider
import io.reactivex.Observable
import me.goldze.mvvmhabit.http.BaseResponse
......
package com.fry.base.netwrok;
package com.mints.street.netwrok;
import android.os.Process;
import com.fry.base.R;
import io.reactivex.Observable;
import io.reactivex.ObservableSource;
import io.reactivex.ObservableTransformer;
import io.reactivex.functions.Function;
import me.goldze.mvvmhabit.base.AppManager;
import me.goldze.mvvmhabit.http.BaseResponse;
import me.goldze.mvvmhabit.utils.ToastUtils;
import me.goldze.mvvmhabit.utils.Utils;
import retrofit2.Response;
/**
......
package com.fry.base.netwrok;
package com.mints.street.netwrok;
import android.annotation.SuppressLint;
......@@ -6,7 +6,8 @@ import com.fry.base.basenetwork.HttpConfiguation;
import com.fry.base.basenetwork.IHttpResponseListener;
import com.fry.base.basenetwork.RetrofitClient;
import com.fry.base.global.Constants;
import com.fry.base.utils.encry.AESUtils;
import com.fry.base.netwrok.OkHttpInterceptor;
import com.mints.street.utils.encry.AESUtils;
import com.trello.rxlifecycle2.LifecycleProvider;
import io.reactivex.Observable;
......
......@@ -2,12 +2,16 @@ package com.fry.base.netwrok
import android.text.TextUtils
import android.util.Log
import com.fry.base.BuildConfig
import com.bytedance.hume.readapk.HumeSDK
import com.fry.base.bean.AppRequest
import com.fry.base.utils.encry.AESUtils
import com.fry.base.utils.encry.Base64
import com.fry.base.utils.encry.MD5
import com.google.gson.Gson
import com.mints.street.AppApplication
import com.mints.street.BuildConfig
import com.mints.street.manager.UserManager
import com.mints.street.utils.CommonUtils
import com.mints.street.utils.encry.AESUtils
import com.mints.street.utils.encry.Base64
import com.mints.street.utils.encry.MD5
import okhttp3.*
import okio.Buffer
import org.json.JSONObject
......@@ -30,8 +34,7 @@ class OkHttpInterceptor(aesKey: String) : Interceptor {
@Throws(IOException::class)
override fun intercept(chain: Interceptor.Chain): Response {
// val tokenID: String = UserManager.INSTANCE.getTokenID()
val tokenID: String = "647ECC8C40A7238E012703044D60D0D95599F1AD1833C4D29670487710D12D315F433703067DF5142735505C42F58997"
val tokenID: String = UserManager.INSTANCE.getTokenID()
val time = System.currentTimeMillis()
val channel = createChannel()
var request = chain.request()
......@@ -51,18 +54,17 @@ class OkHttpInterceptor(aesKey: String) : Interceptor {
* @return
*/
private fun createChannel(): String {
var channel: String = ""
// var channel: String = CommonUtils.getAppMetaData(App.instance, "CHANNEL_NAME")
// try {
// // 穿山甲分包渠道
// val ttChannel = HumeSDK.getChannel(App.instance)
// if (!TextUtils.isEmpty(ttChannel)) {
// // 此处方式不能修改,已和后端约定
// channel = channel + "_" + ttChannel
// }
// } catch (e: Exception) {
// e.printStackTrace()
// }
var channel: String = CommonUtils.getAppMetaData(AppApplication.getContext(), "CHANNEL_NAME")
try {
// 穿山甲分包渠道
val ttChannel = HumeSDK.getChannel(AppApplication.getContext())
if (!TextUtils.isEmpty(ttChannel)) {
// 此处方式不能修改,已和后端约定
channel = channel + "_" + ttChannel
}
} catch (e: Exception) {
e.printStackTrace()
}
return channel
}
......
......@@ -129,9 +129,7 @@ class SplashActivity:BaseActivity<ActivitySplashBinding,SplashViewModel>() {
}
override fun onSplashAdLoadSuccess() {
if (mTTSplashAd != null) {
mTTSplashAd!!.showAd(mSplashContainer)
}
mTTSplashAd?.showAd(mSplashContainer)
}
override fun onAdLoadTimeout() {
......
package com.fry.base.utils.encry;
import android.util.Log;
package com.mints.street.utils.encry;
import com.fry.base.BuildConfig;
......@@ -12,9 +10,10 @@ import javax.crypto.spec.SecretKeySpec;
import Decoder.BASE64Decoder;
import Decoder.BASE64Encoder;
public class AESUtils {
private static final String vis = MD5.GetMD5Code("goldcamera_2021").substring(8, 24);
private static final String vis = MD5.GetMD5Code("street_2021").substring(8, 24);
// public static final String key = "123456";
public static String CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding"; // optional value AES/DES/DESede
......
package com.fry.base.utils.encry;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
* Base64编码工具类
*
* @author
* @date 2012-10-11
*/
public class Base64 {
private static final char[] legalChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray();
public static String encode(byte[] data) {
int start = 0;
int len = data.length;
StringBuffer buf = new StringBuffer(data.length * 3 / 2);
int end = len - 3;
int i = start;
int n = 0;
while (i <= end) {
int d = ((((int) data[i]) & 0x0ff) << 16) | ((((int) data[i + 1]) & 0x0ff) << 8) | (((int) data[i + 2]) & 0x0ff);
buf.append(legalChars[(d >> 18) & 63]);
buf.append(legalChars[(d >> 12) & 63]);
buf.append(legalChars[(d >> 6) & 63]);
buf.append(legalChars[d & 63]);
i += 3;
if (n++ >= 14) {
n = 0;
buf.append(" ");
}
}
if (i == start + len - 2) {
int d = ((((int) data[i]) & 0x0ff) << 16) | ((((int) data[i + 1]) & 255) << 8);
buf.append(legalChars[(d >> 18) & 63]);
buf.append(legalChars[(d >> 12) & 63]);
buf.append(legalChars[(d >> 6) & 63]);
buf.append("=");
} else if (i == start + len - 1) {
int d = (((int) data[i]) & 0x0ff) << 16;
buf.append(legalChars[(d >> 18) & 63]);
buf.append(legalChars[(d >> 12) & 63]);
buf.append("==");
}
return buf.toString();
}
private static int decode(char c) {
if (c >= 'A' && c <= 'Z')
return ((int) c) - 65;
else if (c >= 'a' && c <= 'z')
return ((int) c) - 97 + 26;
else if (c >= '0' && c <= '9')
return ((int) c) - 48 + 26 + 26;
else
switch (c) {
case '+':
return 62;
case '/':
return 63;
case '=':
return 0;
default:
throw new RuntimeException("unexpected code: " + c);
}
}
/**
* Decodes the given Base64 encoded String to a new byte array. The byte array holding the decoded data is returned.
*/
public static byte[] decode(String s) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
decode(s, bos);
} catch (IOException e) {
throw new RuntimeException();
}
byte[] decodedBytes = bos.toByteArray();
try {
bos.close();
bos = null;
} catch (IOException ex) {
System.err.println("Error while decoding BASE64: " + ex.toString());
}
return decodedBytes;
}
private static void decode(String s, OutputStream os) throws IOException {
int i = 0;
int len = s.length();
while (true) {
while (i < len && s.charAt(i) <= ' ')
i++;
if (i == len)
break;
int tri = (decode(s.charAt(i)) << 18) + (decode(s.charAt(i + 1)) << 12) + (decode(s.charAt(i + 2)) << 6) + (decode(s.charAt(i + 3)));
os.write((tri >> 16) & 255);
if (s.charAt(i + 2) == '=')
break;
os.write((tri >> 8) & 255);
if (s.charAt(i + 3) == '=')
break;
os.write(tri & 255);
i += 4;
}
}
}
package com.mints.street.utils.encry;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
* Base64编码工具类
*
* @author
* @date 2012-10-11
*/
public class Base64 {
private static final char[] legalChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".toCharArray();
public static String encode(byte[] data) {
int start = 0;
int len = data.length;
StringBuffer buf = new StringBuffer(data.length * 3 / 2);
int end = len - 3;
int i = start;
int n = 0;
while (i <= end) {
int d = ((((int) data[i]) & 0x0ff) << 16) | ((((int) data[i + 1]) & 0x0ff) << 8) | (((int) data[i + 2]) & 0x0ff);
buf.append(legalChars[(d >> 18) & 63]);
buf.append(legalChars[(d >> 12) & 63]);
buf.append(legalChars[(d >> 6) & 63]);
buf.append(legalChars[d & 63]);
i += 3;
if (n++ >= 14) {
n = 0;
buf.append(" ");
}
}
if (i == start + len - 2) {
int d = ((((int) data[i]) & 0x0ff) << 16) | ((((int) data[i + 1]) & 255) << 8);
buf.append(legalChars[(d >> 18) & 63]);
buf.append(legalChars[(d >> 12) & 63]);
buf.append(legalChars[(d >> 6) & 63]);
buf.append("=");
} else if (i == start + len - 1) {
int d = (((int) data[i]) & 0x0ff) << 16;
buf.append(legalChars[(d >> 18) & 63]);
buf.append(legalChars[(d >> 12) & 63]);
buf.append("==");
}
return buf.toString();
}
private static int decode(char c) {
if (c >= 'A' && c <= 'Z')
return ((int) c) - 65;
else if (c >= 'a' && c <= 'z')
return ((int) c) - 97 + 26;
else if (c >= '0' && c <= '9')
return ((int) c) - 48 + 26 + 26;
else
switch (c) {
case '+':
return 62;
case '/':
return 63;
case '=':
return 0;
default:
throw new RuntimeException("unexpected code: " + c);
}
}
/**
* Decodes the given Base64 encoded String to a new byte array. The byte array holding the decoded data is returned.
*/
public static byte[] decode(String s) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try {
decode(s, bos);
} catch (IOException e) {
throw new RuntimeException();
}
byte[] decodedBytes = bos.toByteArray();
try {
bos.close();
bos = null;
} catch (IOException ex) {
System.err.println("Error while decoding BASE64: " + ex.toString());
}
return decodedBytes;
}
private static void decode(String s, OutputStream os) throws IOException {
int i = 0;
int len = s.length();
while (true) {
while (i < len && s.charAt(i) <= ' ')
i++;
if (i == len)
break;
int tri = (decode(s.charAt(i)) << 18) + (decode(s.charAt(i + 1)) << 12) + (decode(s.charAt(i + 2)) << 6) + (decode(s.charAt(i + 3)));
os.write((tri >> 16) & 255);
if (s.charAt(i + 2) == '=')
break;
os.write((tri >> 8) & 255);
if (s.charAt(i + 3) == '=')
break;
os.write(tri & 255);
i += 4;
}
}
}
package com.fry.base.utils.encry;
import android.util.Log;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
import javax.crypto.spec.IvParameterSpec;
/**
* 描述:3DES加密工具类
* 作者:孟崔广
* 时间:2018/3/29 17:51
* 邮箱:mengcga@163.com
*/
public class Des3 {
// crediteasec@lx100$#365#$
// 密钥
// private final static String secretKey = "mail.asiainfo.com@2x222$#bbb#2";
// 向量
private final static String iv = "01234567";
// 加解密统一使用的编码方式
private final static String encoding = "utf-8";
private static String TAG = "Des3";
/**
* 3DES加密
*
* @param plainText 普通文本
* @return
* @throws Exception
*/
public static String encode(String plainText, String secretKey) {
String ciphertext = "";
if (plainText != null && plainText.length() != 0) {
Key deskey = null;
byte[] encryptData = null;
try {
byte[] bytes = secretKey.getBytes();
DESedeKeySpec spec = new DESedeKeySpec(bytes);
SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");
deskey = keyfactory.generateSecret(spec);
Cipher cipher = Cipher.getInstance("desede/CBC/PKCS5Padding");
IvParameterSpec ips = new IvParameterSpec(iv.getBytes());
cipher.init(Cipher.ENCRYPT_MODE, deskey, ips);
encryptData = cipher.doFinal(plainText.getBytes(encoding));
ciphertext = Base64.encode(encryptData);
//这里需要对特殊字符串进行转码
ciphertext = URLEncoder.encode(ciphertext, "utf-8");
} catch (Exception e) {
Log.e(TAG, e.getMessage().toString());
e.printStackTrace();
}
}
return ciphertext;
}
/**
* 3DES解密
*
* @param encryptText 加密文本
* @return
* @throws Exception
*/
public static String decode(String encryptText, String secretKey) {
String clearText = "";
if (encryptText != null && encryptText.length() != 0) {
Key deskey = null;
byte[] decryptData;
try {
//这里需要对特殊字符串进行转码
encryptText = URLDecoder.decode(
encryptText, "utf-8");
DESedeKeySpec spec = new DESedeKeySpec(secretKey.getBytes());
SecretKeyFactory keyfactory = SecretKeyFactory
.getInstance("desede");
deskey = keyfactory.generateSecret(spec);
Cipher cipher = Cipher.getInstance("desede/CBC/PKCS5Padding");
IvParameterSpec ips = new IvParameterSpec(iv.getBytes());
cipher.init(Cipher.DECRYPT_MODE, deskey, ips);
decryptData = cipher.doFinal(Base64.decode(encryptText));
clearText = new String(decryptData, encoding);
} catch (Exception e) {
e.printStackTrace();
}
}
return clearText;
}
}
package com.mints.street.utils.encry;
import android.util.Log;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.security.Key;
import javax.crypto.Cipher;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESedeKeySpec;
import javax.crypto.spec.IvParameterSpec;
/**
* 描述:3DES加密工具类
* 作者:孟崔广
* 时间:2018/3/29 17:51
* 邮箱:mengcga@163.com
*/
public class Des3 {
// crediteasec@lx100$#365#$
// 密钥
// private final static String secretKey = "mail.asiainfo.com@2x222$#bbb#2";
// 向量
private final static String iv = "01234567";
// 加解密统一使用的编码方式
private final static String encoding = "utf-8";
private static String TAG = "Des3";
/**
* 3DES加密
*
* @param plainText 普通文本
* @return
* @throws Exception
*/
public static String encode(String plainText, String secretKey) {
String ciphertext = "";
if (plainText != null && plainText.length() != 0) {
Key deskey = null;
byte[] encryptData = null;
try {
byte[] bytes = secretKey.getBytes();
DESedeKeySpec spec = new DESedeKeySpec(bytes);
SecretKeyFactory keyfactory = SecretKeyFactory.getInstance("desede");
deskey = keyfactory.generateSecret(spec);
Cipher cipher = Cipher.getInstance("desede/CBC/PKCS5Padding");
IvParameterSpec ips = new IvParameterSpec(iv.getBytes());
cipher.init(Cipher.ENCRYPT_MODE, deskey, ips);
encryptData = cipher.doFinal(plainText.getBytes(encoding));
ciphertext = Base64.encode(encryptData);
//这里需要对特殊字符串进行转码
ciphertext = URLEncoder.encode(ciphertext, "utf-8");
} catch (Exception e) {
Log.e(TAG, e.getMessage().toString());
e.printStackTrace();
}
}
return ciphertext;
}
/**
* 3DES解密
*
* @param encryptText 加密文本
* @return
* @throws Exception
*/
public static String decode(String encryptText, String secretKey) {
String clearText = "";
if (encryptText != null && encryptText.length() != 0) {
Key deskey = null;
byte[] decryptData;
try {
//这里需要对特殊字符串进行转码
encryptText = URLDecoder.decode(
encryptText, "utf-8");
DESedeKeySpec spec = new DESedeKeySpec(secretKey.getBytes());
SecretKeyFactory keyfactory = SecretKeyFactory
.getInstance("desede");
deskey = keyfactory.generateSecret(spec);
Cipher cipher = Cipher.getInstance("desede/CBC/PKCS5Padding");
IvParameterSpec ips = new IvParameterSpec(iv.getBytes());
cipher.init(Cipher.DECRYPT_MODE, deskey, ips);
decryptData = cipher.doFinal(Base64.decode(encryptText));
clearText = new String(decryptData, encoding);
} catch (Exception e) {
e.printStackTrace();
}
}
return clearText;
}
}
package com.fry.base.utils.encry;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/*
* MD5 算法
*/
public class MD5 {
// 全局数组
private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
// 返回形式为数字跟字符串
private static String byteToArrayString(byte bByte) {
int iRet = bByte;
// System.out.println("iRet="+iRet);
if (iRet < 0) {
iRet += 256;
}
int iD1 = iRet / 16;
int iD2 = iRet % 16;
return strDigits[iD1] + strDigits[iD2];
}
// 返回形式只为数字
private static String byteToNum(byte bByte) {
int iRet = bByte;
System.out.println("iRet1=" + iRet);
if (iRet < 0) {
iRet += 256;
}
return String.valueOf(iRet);
}
// 转换字节数组为16进制字串
private static String byteToString(byte[] bByte) {
StringBuffer sBuffer = new StringBuffer();
for (int i = 0; i < bByte.length; i++) {
sBuffer.append(byteToArrayString(bByte[i]));
}
return sBuffer.toString();
}
public static String GetMD5Code(String strObj) {
String resultString = null;
try {
resultString = new String(strObj);
MessageDigest md = MessageDigest.getInstance("MD5");
// md.digest() 该函数返回值为存放哈希值结果的byte数组
resultString = byteToString(md.digest(strObj.getBytes()));
} catch (NoSuchAlgorithmException ex) {
ex.printStackTrace();
}
return resultString;
}
public static void main(String[] args) {
MD5 getMD5 = new MD5();
System.out.println(GetMD5Code("136111111111231231231231e807f1fcf82d132f9bb018ca6738a19f"));
}
package com.mints.street.utils.encry;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/*
* MD5 算法
*/
public class MD5 {
// 全局数组
private final static String[] strDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
// 返回形式为数字跟字符串
private static String byteToArrayString(byte bByte) {
int iRet = bByte;
// System.out.println("iRet="+iRet);
if (iRet < 0) {
iRet += 256;
}
int iD1 = iRet / 16;
int iD2 = iRet % 16;
return strDigits[iD1] + strDigits[iD2];
}
// 返回形式只为数字
private static String byteToNum(byte bByte) {
int iRet = bByte;
System.out.println("iRet1=" + iRet);
if (iRet < 0) {
iRet += 256;
}
return String.valueOf(iRet);
}
// 转换字节数组为16进制字串
private static String byteToString(byte[] bByte) {
StringBuffer sBuffer = new StringBuffer();
for (int i = 0; i < bByte.length; i++) {
sBuffer.append(byteToArrayString(bByte[i]));
}
return sBuffer.toString();
}
public static String GetMD5Code(String strObj) {
String resultString = null;
try {
resultString = new String(strObj);
MessageDigest md = MessageDigest.getInstance("MD5");
// md.digest() 该函数返回值为存放哈希值结果的byte数组
resultString = byteToString(md.digest(strObj.getBytes()));
} catch (NoSuchAlgorithmException ex) {
ex.printStackTrace();
}
return resultString;
}
public static void main(String[] args) {
MD5 getMD5 = new MD5();
System.out.println(GetMD5Code("136111111111231231231231e807f1fcf82d132f9bb018ca6738a19f"));
}
}
\ No newline at end of file
......@@ -33,4 +33,4 @@ RELEASE_SHARESDK_KEY=
RELEASE_SHARESDK_SECRET=
#友盟
RELEASE_UMENG_KEY=
\ No newline at end of file
RELEASE_UMENG_KEY=60e80209a6f90557b7b19aa7
......@@ -44,7 +44,7 @@ dependencies {
api project(':mvvmhabit')
//阿里路由框架
api rootProject.ext.dependencies["arouter-api"]
// api rootProject.ext.dependencies["arouter-api"]
//指示器
api rootProject.ext.dependencies["hackware1993"]
......
......@@ -3,8 +3,6 @@ package com.fry.base.base;
import android.app.Application;
import android.view.Gravity;
import com.alibaba.android.arouter.launcher.ARouter;
import me.goldze.mvvmhabit.utils.KLog;
import me.goldze.mvvmhabit.utils.ToastUtils;
import com.fry.base.BuildConfig;
......@@ -22,10 +20,10 @@ public class BaseModuleInit implements IModuleInit<Void> {
//开启打印日志
KLog.init(BuildConfig.DEBUG);
//初始化阿里路由框架
if (BuildConfig.DEBUG) {
ARouter.openLog(); // 打印日志
ARouter.openDebug(); // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)
}
// if (BuildConfig.DEBUG) {
// ARouter.openLog(); // 打印日志
// ARouter.openDebug(); // 开启调试模式(如果在InstantRun模式下运行,必须开启调试模式!线上版本需要关闭,否则有安全风险)
// }
// 尽可能早,推荐在Application中初始化
// ARouter.init(application);
ToastUtils.setGravity(Gravity.CENTER,0,0);
......
......@@ -6,8 +6,6 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import com.fry.base.BuildConfig;
import com.fry.base.netwrok.OkHttpInterceptor;
import com.fry.base.utils.encry.AESUtils;
import java.util.concurrent.TimeUnit;
......@@ -34,7 +32,7 @@ import retrofit2.converter.gson.GsonConverterFactory;
*/
public class RetrofitClient {
private HttpConfiguation mHttpConfig;
public HttpConfiguation mHttpConfig;
private Context mContext = Utils.getContext();
......
......@@ -16,22 +16,6 @@ public class Constants {
/***
* bugly配置信息
*/
public static final String BUGLY_APP_ID = "1aa21b8cc3";
public static final String UMENG_APP_KEY = "58c35e724544cb4fa8001acf";
public static final String JPUSH_KEY = "830808eb0ee65458c952891c";
public static final String WX_APP_ID = "wxff15efaf15adc6f8";
public static final String WX_APP_SECRET = "83d6dbe46f84bde4cf78d0b58764d797";
public static final String QQAppID = "1105708819";
public static final String QQAppKey = "J9olD7s7udx8rJ0E";
public static final String SinaAppKey = "824068500";
public static final String SinaAppSecret = "99dd08e9f7de660cb81ddc8f90e67e7c";
public static final String SinaCallBackURL = "http://sns.whalecloud.com/sina2/callback";
public static final String BUNDLE_ID = "bundleId";
public static final String ID = "id";
/**
......
package com.fry.base.provider
import android.content.Context
import com.alibaba.android.arouter.facade.template.IProvider
import com.alibaba.android.arouter.launcher.ARouter
/**
* Description :
* Created by yue on 2021/3/10
*/
interface IFlutterProvider : IProvider {
companion object {
const val PROVIDER: String = "/flutter/provider"
@JvmStatic
fun getInstance(): IFlutterProvider {
return ARouter.getInstance().build(PROVIDER).navigation() as IFlutterProvider
}
}
fun toFlutter(context: Context, path: String, arguments: HashMap<String, Any>? = null, requestCode: Int = 0)
}
\ No newline at end of file
#Fri Jul 09 19:35:56 CST 2021
VERSION_BUILD=2722
#Fri Jul 09 19:56:02 CST 2021
VERSION_BUILD=2724
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main$Generated" generated="true" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Androidproject\android_street\shareSdkLib\src\main\res"/><source path="D:\Androidproject\android_street\shareSdkLib\build\generated\res\rs\debug"/><source path="D:\Androidproject\android_street\shareSdkLib\build\generated\res\resValues\debug"/></dataSet><dataSet aapt-namespace="http://schemas.android.com/apk/res-auto" config="main" generated-set="main$Generated" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="D:\Androidproject\android_street\shareSdkLib\src\main\res"><file name="ssdk_oks_classic_platform_cell_back" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable\ssdk_oks_classic_platform_cell_back.xml" qualifiers="" type="drawable"/><file name="ssdk_oks_classic_progressbar" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable\ssdk_oks_classic_progressbar.xml" qualifiers="" type="drawable"/><file name="ssdk_oks_ptr_ptr" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-hdpi\ssdk_oks_ptr_ptr.png" qualifiers="hdpi-v4" type="drawable"/><file name="ssdk_auth_title_back" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_auth_title_back.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_back_arr" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_back_arr.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_country_back_arrow" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_country_back_arrow.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_country_clear_search" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_country_clear_search.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_country_cl_divider" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_country_cl_divider.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_country_search_icon" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_country_search_icon.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_country_sharesdk_icon" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_country_sharesdk_icon.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_input_bg_focus" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_input_bg_focus.9.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_logo" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_logo.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_alipay" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_alipay.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_alipaymoments" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_alipaymoments.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_bluetooth" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_bluetooth.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_check_checked" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_check_checked.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_check_default" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_check_default.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_dingding" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_dingding.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_douban" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_douban.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_dropbox" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_dropbox.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_email" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_email.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_evernote" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_evernote.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_facebook" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_facebook.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_facebookmessenger" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_facebookmessenger.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_flickr" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_flickr.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_foursquare" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_foursquare.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_googleplus" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_googleplus.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_instagram" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_instagram.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_instapaper" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_instapaper.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_kaixin" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_kaixin.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_kakaostory" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_kakaostory.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_kakaotalk" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_kakaotalk.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_laiwang" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_laiwang.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_laiwangmoments" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_laiwangmoments.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_line" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_line.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_linkedin" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_linkedin.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_meipai" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_meipai.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_mingdao" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_mingdao.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_pinterest" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_pinterest.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_pocket" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_pocket.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_qq" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_qq.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_qzone" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_qzone.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_renren" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_renren.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_shortmessage" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_shortmessage.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_sinaweibo" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_sinaweibo.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_telegram" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_telegram.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_tencentweibo" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_tencentweibo.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_tumblr" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_tumblr.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_twitter" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_twitter.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_vkontakte" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_vkontakte.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_wechat" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_wechat.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_wechatfavorite" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_wechatfavorite.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_wechatmoments" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_wechatmoments.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_whatsapp" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_whatsapp.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_yixin" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_yixin.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_yixinmoments" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_yixinmoments.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_youdao" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_youdao.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_oks_classic_youtube" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_oks_classic_youtube.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_title_div" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_title_div.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_weibo_common_shadow_top" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_weibo_common_shadow_top.9.png" qualifiers="xhdpi-v4" type="drawable"/><file name="ssdk_weibo_empty_failed" path="D:\Androidproject\android_street\shareSdkLib\src\main\res\drawable-xhdpi\ssdk_weibo_empty_failed.png" qualifiers="xhdpi-v4" type="drawable"/><file path="D:\Androidproject\android_street\shareSdkLib\src\main\res\values\ssdk_country_arrays.xml" qualifiers=""><string-array name="smssdk_country_group_a">
<item>阿尔巴尼亚,355,110,27601|27602|27603|27604</item>
<item>阿尔及利亚,213,52,60303|60302|60301</item>
<item>阿富汗,93,46,41220|41230|41240|41250|41201</item>
<item>阿根廷,54,27,722070|72207|72236|722020|72201|72234|72202|722320|722310|722010|722340|722330|722341</item>
<item>阿拉伯联合酋长国,971,184,42402|42403</item>
<item>阿鲁巴岛,297,102,36301|36302</item>
<item>阿曼,968,182,42202|42203</item>
<item>阿塞拜疆,994,193,40002|40001|40004</item>
<item>埃及,20,5,60203|60202|60201</item>
<item>埃塞俄比亚,251,84,63601</item>
<item>爱尔兰,353,108,27201|27213|27202|27211|27205|27203|27209</item>
<item>爱沙尼亚,372,117,24803|24802|24801</item>
<item>安道尔,376,121,21303</item>
<item>安哥拉,244,79,63102|63104</item>
<item>安圭拉岛,1264,199,365840</item>
<item>安提瓜和巴布达,1268,200,338050|344030|344920</item>
<item>奥地利,43,16,23207|23209|23210|23211|23201|23212|23202|23214|23203|23204|23215|23205|23206</item>
<item>澳大利亚,61,33,50507|50506|50519|50590|50572|50571|50530|50501|50512|50511|50503|50502|505060|50538|50516|505061|50526</item>
<item>澳门,853,169,45501|45500|45503|45502|45505|45504</item>
</string-array><string-array name="smssdk_country_group_b">
<item>巴巴多斯,1246,198,342600</item>
<item>巴布亚新几内亚,675,155,53701|53702|53703</item>
<item>巴哈马群岛,1242,197,364390|36439</item>
<item>巴基斯坦,92,45,</item>
<item>巴拉圭,595,148,74404|74403|74402|74401</item>
<item>巴勒斯坦领土,970,183,42506-PS|42505-PS</item>
<item>巴林,973,186,42604|42605|42601|42602</item>
<item>巴拿马,507,140,71404|71402|71403|71401</item>
<item>巴西,55,28,72416|72405|72439|72406|72403|72415|72437|72404|72434|72423|72402|72432|72410|72433|72400|72411|72430|72431|72407</item>
<item>白俄罗斯,375,120,25704|25701|25702</item>
<item>百慕大群岛,1441,204,350000</item>
<item>保加利亚,359,114,28401|28405|28403</item>
<item>贝宁,229,64,61605|61601|61602|61603|61604</item>
<item>比利时,32,9,20610|20620|20640|20606|20605|20601</item>
<item>冰岛,354,109,27409|27411|27404|27401|27402|27407</item>
<item>波多黎各,1787,212,310970</item>
<item>波兰,48,22,26016|26038|26004|26018|26017|26006|26009|26019|26008|26010|26032|26001|26034|26012|26011|26003|26036|26014|26002|26013|26035</item>
<item>波利尼西亚(法属),689,165,54720</item>
<item>波斯尼亚和黑塞哥维那,387,129,21890|21805|21803</item>
<item>玻利维亚,591,144,73603|73602|73601</item>
<item>伯利兹,501,134,70267</item>
<item>博茨瓦纳,267,99,65202|65201|65204</item>
<item>不丹,975,188,40211|40277</item>
<item>布基纳法索,226,61,61301|61302|61303</item>
<item>布隆迪,257,90,64201|64203|64202|64207|64282</item>
</string-array><string-array name="smssdk_country_group_c">
<item>朝鲜,850,167,46703</item>
<item>赤道几内亚,240,75,62701|62703</item>
</string-array><string-array name="smssdk_country_group_d">
<item>丹麦,45,19,23801|23812|23802|23813|23803|23806|23828|23807|23808|23830|23820|23810|23866|23877</item>
<item>德国,49,23,26203|26202|26205|26216|26204|26207|26217|26206|26209|26208|26243|26276|26220|26242|26212|26201|26211|26277</item>
<item>东帝汶,670,153,51401|51402</item>
<item>多哥,228,63,61501|61503</item>
<item>多米尼加共和国,1809,213,37001|37002|37003|37004</item>
<item>多米尼克,1767,210,366110</item>
</string-array><string-array name="smssdk_country_group_e">
<item>俄罗斯,7,3,25020|25099|25035|25002|25012|25001|25003|25039|25005|25007</item>
<item>厄瓜多尔,593,146,74002|74001|74000</item>
</string-array><string-array name="smssdk_country_group_f">
<item>法国,33,10,20816|20804|20826|20815|20825|20813|20802|20823|20801|20811|20822|20888|20810|20821|20831|20820|20809|20808|20817</item>
<item>法罗群岛,298,103,28801|28802|28803</item>
<item>菲律宾,63,35,51518|51502|51501|51503|51505</item>
<item>斐济,679,159,54202|54201</item>
<item>芬兰,358,113,24409|24432|24410|24421|24412|24411|24414|24403|24413|24405|24426|24404|24491</item>
<item>佛得角,238,73,62501|62502</item>
</string-array><string-array name="smssdk_country_group_g">
<item>冈比亚,220,55,60702|60701|60704|60703</item>
<item>刚果共和国,242,77,62907|62910|62901</item>
<item>刚果民主共和国,243,78,63086|63001|63089|63002|63005</item>
<item>哥伦比亚,57,30,732130|732020|732154|732111|732123|732101</item>
<item>哥斯达黎加,506,139,71204|71203|71201</item>
<item>格林纳达,1473,205,352110</item>
<item>格陵兰岛,299,104,29001</item>
<item>格鲁吉亚,995,194,28202|28201|28204|28205</item>
<item>古巴,53,26,36801</item>
<item>瓜德罗普岛,590,143,34008|34003|34002|34001|34020</item>
<item>关岛,1671,208,310400|310140|310470|310110</item>
<item>圭亚那,592,145,73802|73801</item>
<item>圭亚那(法属),594,147,74201|74220</item>
</string-array><string-array name="smssdk_country_group_h">
<item>哈萨克斯坦,7,4,40102|40101|40177|40108|40107</item>
<item>海地,509,142,37201|37202</item>
<item>韩国,82,40,45006|45005|45008|45002|45004</item>
<item>荷兰,31,8,20423|20412|20410|20465|20420|20462|20409|20408|20407|20418|20406|20417|20428|20416|20405|20415|20404|20414|20469|20403|20468|20424|20402</item>
<item>荷属安的列斯群岛,599,152,36269|36202|36201|36251|36294|36282|36281</item>
<item>黑山共和国,382,126,29703|29702|29701</item>
<item>洪都拉斯,504,137,70830|70840|70802|70801</item>
</string-array><string-array name="smssdk_country_group_i">
</string-array><string-array name="smssdk_country_group_j">
<item>基里巴斯,686,163,54509</item>
<item>吉布提,253,86,63801</item>
<item>吉尔吉斯斯坦,996,195,43705|43701</item>
<item>几内亚,224,59,61105|61104|61103|61102|61101</item>
<item>几内亚比绍,245,80,63202|63203</item>
<item>加拿大,1,1,302657|302656|302710|302655|302500|302610|302720|302702|302270|302490|302880|302220|302680|302360|302690|302510|302653|302861|302222|302640|302651|302530|302221|302320</item>
<item>加纳,233,68,62001|62002|62003|62004|62006|62007</item>
<item>加蓬,241,76,62804|62801|62802|62803</item>
<item>柬埔寨,855,170,45602|45601|45608|45618|45609|45604|45603|45606|45605|23455-KH</item>
<item>捷克共和国,420,131,23001|23002|23003|23004|23005|23008</item>
<item>津巴布韦,263,95,64801|64803|64804</item>
</string-array><string-array name="smssdk_country_group_k">
<item>喀麦隆,237,72,62401|62402|62404</item>
<item>卡塔尔,974,187,42701|42702</item>
<item>开曼群岛,1345,203,346140</item>
<item>科摩罗,269,101,65401</item>
<item>科特迪瓦,225,60,61205|61204|61203|61202</item>
<item>科威特,965,179,41904|41903|41902</item>
<item>克罗地亚,385,127,21902|21901|21912|21910</item>
<item>肯尼亚,254,87,63905|63907|63903|63902</item>
<item>库克群岛,682,161,54801</item>
</string-array><string-array name="smssdk_country_group_l">
<item>拉脱维亚,371,116,24703|24706|24705|24708|24707|24709|24702|24701</item>
<item>莱索托,266,98,65101|65102</item>
<item>老挝,856,171,45701|45708|45703|45702</item>
<item>黎巴嫩,961,175,41503|41501</item>
<item>立陶宛,370,115,24601|24603|24602</item>
<item>利比里亚,231,66,61804|61807|61801|61802</item>
<item>利比亚,218,54,60603|60601|60600</item>
<item>列支敦士登,423,133,29501|29577|29505|29502</item>
<item>法属留尼汪岛,262,94,64710|64702</item>
<item>卢森堡,352,107,27099|27077|27001</item>
<item>卢旺达,250,83,63510|63512|63513|63514</item>
<item>罗马尼亚,40,14,22603|22604|22605|22610|22601</item>
</string-array><string-array name="smssdk_country_group_m">
<item>马达加斯加,261,93,64601|64602|64604</item>
<item>马尔代夫,960,174,47201|47202</item>
<item>马耳他,356,111,27821|27877|27801</item>
<item>马拉维,265,97,65010|65001</item>
<item>马来西亚,60,32,50220|50211|50213|502150|50212|502151|502152|50217|50216|50219|50218</item>
<item>马里,223,58,61002|61001</item>
<item>马其顿,389,130,29402|29401|29403</item>
<item>马提尼克,596,149,34003|34002|34001|34020</item>
<item>毛里求斯,230,65,61710|61701|61702</item>
<item>毛里塔尼亚,222,57,60910|60902</item>
<item>美国,1,2,311090|310080|311050|311370|310160|31150|311010|310680|310120|310560|311650|310880|310760|31190|310320|310630|310710|310090|310290|316993|310170|310050|31060|311580|310690|311020|311340|310570|311660|310450|310011|310770|316995|310012|316994|311730|310004|311610|310840|310005|310600|31100|311190|310180|31050|310060|316883|311150|310380|311030|310260|311230|310020|310340|311991|311430|316885|310660|310100|316884|310540|310023|310980|311740|310410|31016|310610|310016|31130|31011|31611|310190|311040|316011|310150|310790|310990|310870|310420|310300|310740|311710</item>
<item>蒙古,976,189,42898|42888|42899|42801</item>
<item>蒙特塞拉特岛,1664,207,354860</item>
<item>孟加拉国,880,172,47007|47005|47006|47003|47004|47001|47002</item>
<item>秘鲁,51,24,71610|71606|71617|71607|71615</item>
<item>密克罗尼西亚,691,166,55001</item>
<item>缅甸,95,48,41401|41406|41405</item>
<item>摩尔多瓦,373,118,25903|25902|25904|25901</item>
<item>摩洛哥,212,51,60405|60402|60401|60400</item>
<item>摩纳哥,377,122,21201</item>
<item>莫桑比克,258,91,64301|64304|64303</item>
<item>墨西哥,52,25,33402|33403|33401|33450|33406|334090|33404|33405</item>
</string-array><string-array name="smssdk_country_group_n">
<item>纳米比亚,264,96,64902|64901|64903</item>
<item>南非,27,6,65510|65512|65501|65502|65507|65519</item>
<item>南苏丹,211,50,65995</item>
<item>尼泊尔,977,190,42901|42902</item>
<item>尼加拉瓜,505,138,71021|71030</item>
<item>尼日尔,227,62,61401|61402|61403|61404</item>
<item>尼日利亚,234,69,62150|62140|62130|62120|62125|23455-NG|62160</item>
<item>挪威,47,21,24208|24209|24220|24221|24222|24201|24223|24202|24224|24204|24205|24206</item>
</string-array><string-array name="smssdk_country_group_o">
</string-array><string-array name="smssdk_country_group_p">
<item>帕劳,680,160,55201|55280</item>
<item>葡萄牙,351,106,26804|26806|26801|26803</item>
</string-array><string-array name="smssdk_country_group_q">
</string-array><string-array name="smssdk_country_group_r">
<item>日本,81,39,44027|44026|44029|44028|44023|44144|44022|44143|44025|44024|44145|44140|44021|44142|44141|44020|44016|44015|44018|44017|44012|44011|44099|44014|44013|44019|44090|44096|44095|44010|44098|44097|44092|44091|44094|44093|44004|44007|44006|44001|44089|44000|44088|44003|44002|44009|44008|44087|44199|44078|44198|44077|44079|44074|44194|44073|44076|44075|44191|44070|44190|44193|44072|44192|44071|44067|44066|44069|44068|44063|44062|44065|44064|44061|44060|44056|44055|44058|44052|44051|44054|44053|44050|44170|44049|44048|44045|44044|44165|44047|44046|44041|44162|44040|44161|44043|44164|44042|44163|44038|44037|44039|44034|44033|44036|44035|44030|44032|44031</item>
<item>瑞典,46,20,24035|24013|24036|24014|24037|24015|24038|24016|24039|24017|24018|24019|24030|24031|24010|24032|24033|24012|24034|24002|24003|24026|24027|24028|24006|24029|24007|24008|24040|24020|24043|24022|24000|24044|24023|24001|24045</item>
<item>瑞士,41,15,22812|22801|22802|22803|22805|22809|22851|22853|22854</item>
</string-array><string-array name="smssdk_country_group_s">
<item>萨尔瓦多,503,136,70602|70601|70604|70603|70605</item>
<item>萨摩亚,685,162,54900</item>
<item>塞尔维亚,381,125,29341|22001|22003|22005</item>
<item>塞拉利昂,232,67,61902|61903|61904|61905|61906|61909|61901</item>
<item>塞内加尔,221,56,60801|60803|60802</item>
<item>塞浦路斯,357,112,28022|28001|28020|28010</item>
<item>塞舌尔,248,81,63310|63301|63302</item>
<item>沙特阿拉伯,966,180,42003|42004|42001|42006</item>
<item>圣多美和普林西比,239,74,62601</item>
<item>圣基茨和尼维斯,1869,215,356110|356070</item>
<item>圣卢西亚,1758,209,358110</item>
<item>圣马力诺,378,123,29201</item>
<item>圣皮埃尔和密克隆岛,508,141,30801</item>
<item>圣文森特和格林纳丁斯,1784,211,360110</item>
<item>斯里兰卡,94,47,41301|41305|41302|41308</item>
<item>斯洛伐克,421,132,23199|23101|23102|23106</item>
<item>斯洛文尼亚,386,128,29364|29341|29340|29370</item>
<item>斯威士兰,268,100,65310|65301</item>
<item>苏丹,249,82,63401|63402|63407</item>
<item>苏里南,597,150,74604|74603|74602</item>
<item>所罗门群岛,677,157,54010</item>
<item>索马里,252,85,63782|63760|63730|63701|63725|63704</item>
</string-array><string-array name="smssdk_country_group_t">
<item>塔吉克斯坦,992,191,43605|43601|43602|43603|43604</item>
<item>台湾,886,173,46602|46668|46603|46688|46699|46601|46689|46656|46697|46610|46609|46606|46607|46605|46693|46692</item>
<item>泰国,66,38,52000|52099|52020|52003|52004|52015|52001|52023|52002|52018|52005</item>
<item>坦桑尼亚,255,88,64011|64003|64002|64005|64004|64007|64006|64009|64008</item>
<item>汤加,676,156,53901</item>
<item>特克斯和凯科斯群岛,1649,206,376352|376350</item>
<item>特立尼达,多巴哥,1868,214,374130|37412</item>
<item>突尼斯,216,53,60503|60502|60501</item>
<item>土耳其,90,43,28602|28603|28601|28604</item>
<item>土库曼斯坦,993,192,43801|43802</item>
</string-array><string-array name="smssdk_country_group_u">
</string-array><string-array name="smssdk_country_group_v">
</string-array><string-array name="smssdk_country_group_w">
<item>瓦努阿图,678,158,54101|54105</item>
<item>危地马拉,502,135,70402|70401|70403</item>
<item>维尔京群岛(美属),1284,201,311470</item>
<item>维尔京群岛(英属),1340,202,348570|348170</item>
<item>委内瑞拉,58,31,73406|73404|73401</item>
<item>文莱,673,154,52811|52802</item>
<item>乌干达,256,89,64111|64133|64166|64122|64110|64101|64114</item>
<item>乌克兰,380,124,25507|25506|25521|25501|25503|25502|25505|25504</item>
<item>乌拉圭,598,151,74803|74802|74801|74800|74810|74807</item>
<item>乌兹别克斯坦,998,196,43401|43402|43407|43403|43404|43405|43406</item>
</string-array><string-array name="smssdk_country_group_x">
<item>西班牙,34,11,21402|21401|21423|21411|21422|21410|21421|21432|21420|21409|21408|21419|21407|21418|21417|21406|21405|21427|21416|21404|21415|21425|21403</item>
<item>希腊,30,7,20203|20202|20201|20210|20209|20207|20205</item>
<item>香港,852,168,45413|45412|45401|45404|45403|45414|45400|45411|45409|45406|45405|45416|45408|45419|45429|45407</item>
<item>新加坡,65,37,52502|52503|52512|52501|52505</item>
<item>新喀里多尼亚,687,164,54601</item>
<item>新西兰,64,36,53001|53004|53005|53024|53002|53006</item>
<item>匈牙利,36,12,21630|21670|21601</item>
<item>叙利亚,963,177,41701|41702</item>
</string-array><string-array name="smssdk_country_group_y">
<item>牙买加,1876,216,338180|338020|338110</item>
<item>亚美尼亚,374,119,28301|28310|28305|28304</item>
<item>也门,967,181,42101|42102|42103</item>
<item>伊拉克,964,178,41805|41840|41820|41830|41845</item>
<item>伊朗,98,49,43235|43214|43220|43200|43211|43219</item>
<item>以色列,972,185,42577|42516|42505|42506|42507|RESTRICTED-IL|42519|42508|42501|42512|42523|42502|42503|42514|42515</item>
<item>意大利,39,13,22206|22207|22208|22210|22243|22288|22244|22299|22233|22201|22235|22204|22248|22205|22230</item>
<item>印度,91,44,405893|405892|405895|405894|405897|405896|405899|405898|40501|40506|40505|405891|405890|40503|405889|405882|405881|405883|405886|405885|405888|405887|405880|405879|405878|405871|405750|405870|405873|405752|405872|405751|405875|405754|405874|405753|405877|405756|405876|405755|405868|405867|405869|405860|405862|405861|405864|405863|405866|405865|405856|405859|405858|40494|40493|40492|40491|40498|40497|40496|40495|40490|40483|40482|40481|40480|40487|40486|40485|405799|40484|40489|40488|40472|40471|40470|40476|40475|40474|40473|40479|40478|40477|40460|405930|405811|40462|405810|405931|40469|40468|40467|40466|405809|405802|405923|405801|405922|405804|405925|405803|405924|405806|405927|405805|405926|405808|405929|405807|405928|40450|40570|40454|40453|40452|405800|405921|40451|405920|40458|40457|40456|40455|40459|405919|405912|405914|405913|405916|405915|405918|405917|40443|40442|40441|40567|40446|40566|40449|405901|405900|405903|405902|405905|405904|405907|405906|40553|40552|40431|40551|40430|40436|40556|40435|40555|40434|40554|40433|40438|40437|405851|405850|40421|405853|40420|405852|405855|405854|40425|40424|40422|40429|40428|40427|40419|405846|405845|405848|405847|405849|405046|405045|405840|405047|40410|405842|405841|405843|40413|40412|405040|40411|40418|405042|40417|405041|40416|405044|40415|405043|40409|405835|405834|405837|405836|405839|405838|405035|405034|405037|405036|40520|405039|405831|405038|405830|405833|405832|40524|40403|40402|40523|40522|40401|40521|40400|40407|405031|40406|405030|40405|405033|40404|405032|40519|40518|405824|405823|405825|405828|405827|405829|405026|405025|405820|405027|405822|405029|405821|40513|40512|40511|40510|40517|40515|40514|40509|40508|40507|405813|405812|405815|405814|405817|405816|405819|405818</item>
<item>印度尼西亚,62,34,51010|51021|51089|51001|51011|51027|51007|51028|51009|51008</item>
<item>英国,44,17,23427|23428|23407|23409|23420|23400|23401|23423|23500|23424|23402|23403|23425|23426|23416|23417|23418|23419|23430|23431|23476|23410|23433|23455|23411|23478|23434|23458|23414|23415|23450|23451</item>
<item>约旦,962,176,41601|41677|41603</item>
<item>越南,84,41,45204|45205|45202|45201|45207</item>
</string-array><string-array name="smssdk_country_group_z">
<item>赞比亚,260,92,64502|64501|64503</item>
<item>泽西,44,18,</item>
<item>乍得,235,70,62201|62203</item>
<item>直布罗陀,350,105,26606|26609|26601</item>
<item>智利,56,29,73008|73006|73004|73002|73013|73003|73014|73011|73012|73001</item>
<item>中非共和国,236,71,62301|62302|62303|62304</item>
<item>中国,86,42,46006|46007|46005|46002|46003|46000|46001</item>
</string-array></file><file path="D:\Androidproject\android_street\shareSdkLib\src\main\res\values\ssdk_instapaper_strings.xml" qualifiers=""><string formatted="false" name="ssdk_instapager_login_html"><![CDATA[
<!DOCTYPE html>
<html>
<head>
<meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\">
<meta content=\"width=device-width,minimum-scale=1,maximum-scale=1,initial-scale=1,user-scalable=no\" id=\"viewport\" name=\"viewport\">
<meta content=\"yes\" name=\"apple-mobile-web-app-capable\">
<title>%s</title>
<style type=\"text/css\">
body{margin:0;padding:0}
.inputstyle {
-webkit-tap-highlight-color:rgba(255,255,255,0);
width:100%%;
height:44px;
color:#000;
background:0;
border:0;
font-size:16px;
outline: none;
-webkit-appearance:none
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment