国际化:简体中文改为繁体
This commit is contained in:
@@ -1,14 +1,15 @@
|
||||
package com.yizhuan.xchat_android_library;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.test.platform.app.InstrumentationRegistry;
|
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
import androidx.test.platform.app.InstrumentationRegistry;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
|
@@ -1,4 +1,3 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.yizhuan.xchat_android_library">
|
||||
<manifest package="com.yizhuan.xchat_android_library">
|
||||
|
||||
</manifest>
|
||||
|
@@ -1,15 +1,15 @@
|
||||
package com.yizhuan.xchat_android_library.base.factory;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.util.Log;
|
||||
|
||||
import com.trello.rxlifecycle3.LifecycleProvider;
|
||||
import com.trello.rxlifecycle3.LifecycleTransformer;
|
||||
import com.trello.rxlifecycle3.OutsideLifecycleException;
|
||||
import com.trello.rxlifecycle3.RxLifecycle;
|
||||
import com.yizhuan.xchat_android_library.BuildConfig;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
import com.yizhuan.xchat_android_library.base.PresenterEvent;
|
||||
|
||||
|
@@ -3,8 +3,9 @@ package com.yizhuan.xchat_android_library.base.factory;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import com.yizhuan.xchat_android_library.BuildConfig;
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
|
||||
/**
|
||||
@@ -31,7 +32,7 @@ public class BaseMvpProxy<V extends IMvpBaseView, P extends AbstractMvpPresenter
|
||||
@Override
|
||||
public void setPresenterFactory(PresenterMvpFactory<V, P> presenterFactory) {
|
||||
if (mPresenter != null) {
|
||||
throw new IllegalArgumentException("这个方法只能在getMvpPresenter()之前调用,如果Presenter已经创建了则不能再更改!!!");
|
||||
throw new IllegalArgumentException(ResUtil.getString(R.string.base_factory_basemvpproxy_01));
|
||||
}
|
||||
this.mMvpFactory = presenterFactory;
|
||||
}
|
||||
|
@@ -1,7 +1,8 @@
|
||||
package com.yizhuan.xchat_android_library.base.factory;
|
||||
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.base.IMvpBaseView;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
/**
|
||||
* <p> Presenter 工厂实现类 </p>
|
||||
@@ -42,7 +43,7 @@ public class PresenterMvpFactoryImpl<V extends IMvpBaseView, P extends AbstractM
|
||||
return mPresenterClass.newInstance();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("Presenter 创建失败,检查是否声明了@CreatePresenter(xxx.class)注解!!!----", e);
|
||||
throw new RuntimeException(ResUtil.getString(R.string.base_factory_presentermvpfactoryimpl_01), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,10 +1,11 @@
|
||||
package com.yizhuan.xchat_android_library.bindinglist;
|
||||
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.ViewDataBinding;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
/**
|
||||
* Created by lvzebiao on 2018/10/23.
|
||||
|
@@ -1,15 +1,13 @@
|
||||
package com.yizhuan.xchat_android_library.bindinglist;
|
||||
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableList;
|
||||
|
||||
import android.os.Looper;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.databinding.ObservableArrayList;
|
||||
import androidx.databinding.ObservableList;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
@@ -1,9 +1,10 @@
|
||||
package com.yizhuan.xchat_android_library.list;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
public class NoScrollingLinearLayoutManager extends LinearLayoutManager {
|
||||
|
||||
private boolean isScrollEnabled = true;
|
||||
|
@@ -2,6 +2,7 @@ package com.yizhuan.xchat_android_library.manager;
|
||||
|
||||
import android.app.Application;
|
||||
import android.os.Debug;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
/**
|
||||
|
@@ -2,8 +2,10 @@ package com.yizhuan.xchat_android_library.net.rxnet;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.net.rxnet.manager.RxNetManager;
|
||||
import com.yizhuan.xchat_android_library.utils.NullUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
|
||||
/**
|
||||
@@ -54,7 +56,7 @@ public final class RxNet {
|
||||
|
||||
|
||||
private static void checkInstance() {
|
||||
NullUtils.checkNull(mInstance, "请在项目中先调用RxNet.init()方法初始化!!!");
|
||||
NullUtils.checkNull(mInstance, ResUtil.getString(R.string.net_rxnet_rxnet_01));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -3,7 +3,6 @@ package com.yizhuan.xchat_android_library.net.rxnet.converter;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
|
||||
import kotlin.jvm.functions.Function1;
|
||||
|
||||
public class GsonConverterPlugins {
|
||||
|
@@ -2,8 +2,10 @@ package com.yizhuan.xchat_android_library.net.rxnet.interceptor;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.net.rxnet.utils.RxNetLog;
|
||||
import com.yizhuan.xchat_android_library.net.rxnet.utils.RxNetWorkUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -33,7 +35,7 @@ public class HttpCacheInterceptor implements Interceptor {
|
||||
request = request.newBuilder()
|
||||
.cacheControl(CacheControl.FORCE_CACHE)
|
||||
.build();
|
||||
RxNetLog.d("没有网络,强制获取缓存!");
|
||||
RxNetLog.d(ResUtil.getString(R.string.rxnet_interceptor_httpcacheinterceptor_01));
|
||||
}
|
||||
Response originalResponse = chain.proceed(request);
|
||||
if (RxNetWorkUtils.isAvailable(mContext)) {
|
||||
|
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.yizhuan.xchat_android_library.net.rxnet.interceptor;
|
||||
|
||||
import static okhttp3.internal.platform.Platform.INFO;
|
||||
|
||||
import java.io.EOFException;
|
||||
import java.io.IOException;
|
||||
import java.nio.charset.Charset;
|
||||
@@ -38,8 +40,6 @@ import okio.Buffer;
|
||||
import okio.BufferedSource;
|
||||
import okio.GzipSource;
|
||||
|
||||
import static okhttp3.internal.platform.Platform.INFO;
|
||||
|
||||
/**
|
||||
* An OkHttp interceptor which logs request and response information. Can be applied as an
|
||||
* {@linkplain OkHttpClient#interceptors() application interceptor} or as a {@linkplain
|
||||
|
@@ -3,9 +3,12 @@ package com.yizhuan.xchat_android_library.service;
|
||||
import android.app.job.JobParameters;
|
||||
import android.app.job.JobService;
|
||||
import android.os.Build;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
/**
|
||||
* <p> 在电量充足,wifi等情况下处理后台耗时任务</p>
|
||||
@@ -19,11 +22,11 @@ public class ErBanService extends JobService {
|
||||
@Override
|
||||
public boolean onStartJob(JobParameters params) {
|
||||
int jobId = params.getJobId();
|
||||
Logger.d("开始后台任务......%d", jobId);
|
||||
Logger.d(ResUtil.getString(R.string.xchat_android_library_service_erbanservice_01), jobId);
|
||||
|
||||
// StatisticManager.Instance().deleteLogFiles()
|
||||
// .subscribe(aBoolean -> {
|
||||
// Logger.i("执行删除日志文件" + (aBoolean ? "成功" : "失败"));
|
||||
// Logger.i(ResUtil.getString(R.string.xchat_android_library_service_erbanservice_02) + (aBoolean ? ResUtil.getString(R.string.xchat_android_library_service_erbanservice_03) : ResUtil.getString(R.string.xchat_android_library_service_erbanservice_04)));
|
||||
// });
|
||||
return false;
|
||||
}
|
||||
@@ -31,7 +34,7 @@ public class ErBanService extends JobService {
|
||||
@Override
|
||||
public boolean onStopJob(JobParameters params) {
|
||||
int jobId = params.getJobId();
|
||||
Logger.d("停止后台任务......%d", jobId);
|
||||
Logger.d(ResUtil.getString(R.string.xchat_android_library_service_erbanservice_05), jobId);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@@ -6,13 +6,14 @@ import android.content.res.TypedArray;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import androidx.core.view.ViewCompat;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@@ -17,10 +17,6 @@
|
||||
package com.yizhuan.xchat_android_library.swipeactivity;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.core.view.MotionEventCompat;
|
||||
import androidx.core.view.VelocityTrackerCompat;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.widget.ScrollerCompat;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.VelocityTracker;
|
||||
import android.view.View;
|
||||
@@ -28,6 +24,11 @@ import android.view.ViewConfiguration;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.animation.Interpolator;
|
||||
|
||||
import androidx.core.view.MotionEventCompat;
|
||||
import androidx.core.view.VelocityTrackerCompat;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.widget.ScrollerCompat;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
|
@@ -2,6 +2,9 @@ package com.yizhuan.xchat_android_library.threadmgr;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.concurrent.RejectedExecutionHandler;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
|
||||
@@ -12,7 +15,7 @@ public class SchedulePolicy implements RejectedExecutionHandler {
|
||||
|
||||
@Override
|
||||
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
|
||||
Log.e("mouse_debug", "单线程池并发过高执行抛弃策略");
|
||||
Log.e("mouse_debug", ResUtil.getString(R.string.xchat_android_library_threadmgr_schedulepolicy_01));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -2,6 +2,9 @@ package com.yizhuan.xchat_android_library.threadmgr;
|
||||
|
||||
import android.util.Log;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.util.concurrent.RejectedExecutionHandler;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
|
||||
@@ -12,7 +15,7 @@ public class SpeakPolicy implements RejectedExecutionHandler {
|
||||
|
||||
@Override
|
||||
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
|
||||
Log.e("mouse_debug", "光晕并发过高执行抛弃策略");
|
||||
Log.e("mouse_debug", ResUtil.getString(R.string.xchat_android_library_threadmgr_speakpolicy_01));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -1,5 +1,7 @@
|
||||
package com.yizhuan.xchat_android_library.utils;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
|
||||
import java.math.RoundingMode;
|
||||
import java.text.DecimalFormat;
|
||||
|
||||
@@ -73,16 +75,16 @@ public class FormatUtils {
|
||||
return decimalFormat.format(res);
|
||||
} else if (Math.abs(num / wan) >= 1 && Math.abs(num / yi) < 1) {
|
||||
res = num / wan;
|
||||
return decimalFormat.format(res) + "万";
|
||||
return decimalFormat.format(res) + ResUtil.getString(R.string.xchat_android_library_utils_formatutils_01);
|
||||
} else if (Math.abs(num / yi) >= 1 && Math.abs(num / zhao) < 1) {
|
||||
res = num / yi;
|
||||
return decimalFormat.format(res) + "亿";
|
||||
return decimalFormat.format(res) + ResUtil.getString(R.string.xchat_android_library_utils_formatutils_02);
|
||||
} else {
|
||||
res = num / zhao;
|
||||
return decimalFormat.format(res) + "兆";
|
||||
return decimalFormat.format(res) + ResUtil.getString(R.string.xchat_android_library_utils_formatutils_03);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return "格式化异常。";
|
||||
return ResUtil.getString(R.string.xchat_android_library_utils_formatutils_04);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,7 +111,7 @@ public class FormatUtils {
|
||||
|
||||
//PK值相关格式化方式,统一方法,方便以后更改样式
|
||||
public static String formatPKValue(long value) {
|
||||
// if (value >= 1000000) return (value / 100) / 100f + "万";
|
||||
// if (value >= 1000000) return (value / 100) / 100f + ResUtil.getString(R.string.xchat_android_library_utils_formatutils_05);
|
||||
return String.valueOf(value);
|
||||
}
|
||||
|
||||
|
@@ -5,6 +5,8 @@ import android.text.TextUtils;
|
||||
import android.util.Base64;
|
||||
import android.util.Log;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
@@ -27,7 +29,7 @@ public class JavaUtil {
|
||||
try {
|
||||
result = Long.parseLong(str);
|
||||
} catch (Exception e) {
|
||||
Log.e("JavaUtil","parseLong错误");
|
||||
Log.e("JavaUtil",ResUtil.getString(R.string.xchat_android_library_utils_javautil_01));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -41,7 +43,7 @@ public class JavaUtil {
|
||||
result = Integer.parseInt(str);
|
||||
} catch (Exception e) {
|
||||
//数据转化问题
|
||||
Log.e("JavaUtil","parseInt错误");
|
||||
Log.e("JavaUtil",ResUtil.getString(R.string.xchat_android_library_utils_javautil_02));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -55,7 +57,7 @@ public class JavaUtil {
|
||||
result = Double.parseDouble(str);
|
||||
} catch (Exception e) {
|
||||
//数据转化问题
|
||||
Log.e("JavaUtil","str2double错误");
|
||||
Log.e("JavaUtil",ResUtil.getString(R.string.xchat_android_library_utils_javautil_03));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -68,7 +70,7 @@ public class JavaUtil {
|
||||
String format = df.format(str2double(str));
|
||||
return format;
|
||||
} catch (Exception e) {
|
||||
Log.e("JavaUtil","str2double2len错误");
|
||||
Log.e("JavaUtil",ResUtil.getString(R.string.xchat_android_library_utils_javautil_04));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -79,7 +81,7 @@ public class JavaUtil {
|
||||
String format = df.format(str2double(str));
|
||||
return format;
|
||||
} catch (Exception e) {
|
||||
Log.e("JavaUtil","str2double0len错误");
|
||||
Log.e("JavaUtil",ResUtil.getString(R.string.xchat_android_library_utils_javautil_05));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -90,7 +92,7 @@ public class JavaUtil {
|
||||
try {
|
||||
result = Float.parseFloat(str);
|
||||
} catch (Exception e) {
|
||||
Log.e("JavaUtil","parseFloat错误");
|
||||
Log.e("JavaUtil",ResUtil.getString(R.string.xchat_android_library_utils_javautil_06));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -227,19 +229,19 @@ public class JavaUtil {
|
||||
|
||||
public static int weekStr2int(String str) {
|
||||
int i = 0;
|
||||
if (str.equals("一")) {
|
||||
if (str.equals(ResUtil.getString(R.string.xchat_android_library_utils_javautil_07))) {
|
||||
i = 1;
|
||||
} else if (str.equals("二")) {
|
||||
} else if (str.equals(ResUtil.getString(R.string.xchat_android_library_utils_javautil_08))) {
|
||||
i = 2;
|
||||
} else if (str.equals("三")) {
|
||||
} else if (str.equals(ResUtil.getString(R.string.xchat_android_library_utils_javautil_09))) {
|
||||
i = 3;
|
||||
} else if (str.equals("四")) {
|
||||
} else if (str.equals(ResUtil.getString(R.string.xchat_android_library_utils_javautil_010))) {
|
||||
i = 4;
|
||||
} else if (str.equals("五")) {
|
||||
} else if (str.equals(ResUtil.getString(R.string.xchat_android_library_utils_javautil_011))) {
|
||||
i = 5;
|
||||
} else if (str.equals("六")) {
|
||||
} else if (str.equals(ResUtil.getString(R.string.xchat_android_library_utils_javautil_012))) {
|
||||
i = 6;
|
||||
} else if (str.equals("七") || str.equals("日")) {
|
||||
} else if (str.equals(ResUtil.getString(R.string.xchat_android_library_utils_javautil_013)) || str.equals(ResUtil.getString(R.string.xchat_android_library_utils_javautil_014))) {
|
||||
i = 7;
|
||||
}
|
||||
return i;
|
||||
|
@@ -7,9 +7,9 @@ import android.net.wifi.WifiManager;
|
||||
import android.os.Build;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.yizhuan.xchat_android_library.BuildConfig;
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.FileReader;
|
||||
@@ -32,44 +32,44 @@ public class MacAddressUtils {
|
||||
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.e("=====", "6.0以下");
|
||||
// Toast.makeText(context, "6.0以下", Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort("6.0以下");
|
||||
Log.e("=====", ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_01));
|
||||
// Toast.makeText(context, ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_02), Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_03));
|
||||
}
|
||||
strMac = getLocalMacAddressFromWifiInfo(context);
|
||||
return strMac;
|
||||
} else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N
|
||||
&& Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.e("=====", "6.0以上7.0以下");
|
||||
// Toast.makeText(context, "6.0以上7.0以下", Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort("6.0以上7.0以下");
|
||||
Log.e("=====", ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_04));
|
||||
// Toast.makeText(context, ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_05), Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_06));
|
||||
}
|
||||
strMac = getMacAddress(context);
|
||||
return strMac;
|
||||
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
Log.e("=====", "7.0以上");
|
||||
Log.e("=====", ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_07));
|
||||
if (!TextUtils.isEmpty(getMacAddress())) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.e("=====", "7.0以上1");
|
||||
// Toast.makeText(context, "7.0以上1", Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort("7.0以上1");
|
||||
Log.e("=====", ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_08));
|
||||
// Toast.makeText(context, ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_09), Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_010));
|
||||
}
|
||||
strMac = getMacAddress();
|
||||
return strMac;
|
||||
} else if (!TextUtils.isEmpty(getMachineHardwareAddress())) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.e("=====", "7.0以上2");
|
||||
// Toast.makeText(context, "7.0以上2", Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort("7.0以上2");
|
||||
Log.e("=====", ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_011));
|
||||
// Toast.makeText(context, ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_012), Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_013));
|
||||
}
|
||||
strMac = getMachineHardwareAddress();
|
||||
return strMac;
|
||||
} else {
|
||||
if (BuildConfig.DEBUG) {
|
||||
Log.e("=====", "7.0以上3");
|
||||
// Toast.makeText(context, "7.0以上3", Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort("7.0以上3");
|
||||
Log.e("=====", ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_014));
|
||||
// Toast.makeText(context, ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_015), Toast.LENGTH_SHORT).show();
|
||||
SingleToastUtil.showToastShort(ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_016));
|
||||
}
|
||||
strMac = getLocalMacAddressFromBusybox();
|
||||
return strMac;
|
||||
@@ -345,7 +345,7 @@ public class MacAddressUtils {
|
||||
result = callCmd("busybox ifconfig", "HWaddr");
|
||||
// 如果返回的result == null,则说明网络不可取
|
||||
if (result == null) {
|
||||
return "网络异常";
|
||||
return ResUtil.getString(R.string.xchat_android_library_utils_macaddressutils_017);
|
||||
}
|
||||
// 对该行数据进行解析
|
||||
// 例如:eth0 Link encap:Ethernet HWaddr 00:16:E8:3E:DF:67
|
||||
|
@@ -1,5 +1,7 @@
|
||||
package com.yizhuan.xchat_android_library.utils;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
|
||||
/**
|
||||
* <p> </p>
|
||||
*
|
||||
@@ -9,7 +11,7 @@ package com.yizhuan.xchat_android_library.utils;
|
||||
public class NullUtils {
|
||||
public static void checkNull(Object o) {
|
||||
if (o == null) {
|
||||
throw new IllegalArgumentException(o + " 不能为null !");
|
||||
throw new IllegalArgumentException(o + ResUtil.getString(R.string.xchat_android_library_utils_nullutils_01));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,18 @@
|
||||
package com.yizhuan.xchat_android_library.utils;
|
||||
|
||||
import android.app.Application;
|
||||
|
||||
import androidx.annotation.StringRes;
|
||||
|
||||
|
||||
public class ResUtil {
|
||||
private static Application context;
|
||||
|
||||
public static void init(Application context) {
|
||||
ResUtil.context = context;
|
||||
}
|
||||
|
||||
public static String getString(@StringRes int resId) {
|
||||
return context.getString(resId);
|
||||
}
|
||||
}
|
@@ -10,12 +10,13 @@ import android.graphics.Bitmap;
|
||||
import android.graphics.Point;
|
||||
import android.os.Build;
|
||||
import android.provider.Settings;
|
||||
import androidx.annotation.NonNull;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.view.Surface;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* author: Blankj
|
||||
|
@@ -6,6 +6,8 @@ import android.os.Build;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.Log;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
|
||||
@@ -19,10 +21,10 @@ public class TelephonyUtils {
|
||||
public static final String UNICOM = "UNICOM";
|
||||
public static final String UNKNOWN = "Unknown";
|
||||
|
||||
public static final String NAME_CMCC = "中国移动";
|
||||
public static final String NAME_CTL = "中国电信";
|
||||
public static final String NAME_UNICOM = "中国联通";
|
||||
public static final String NAME_UNKNOWN = "未知";
|
||||
public static final String NAME_CMCC = ResUtil.getString(R.string.xchat_android_library_utils_telephonyutils_01);
|
||||
public static final String NAME_CTL = ResUtil.getString(R.string.xchat_android_library_utils_telephonyutils_02);
|
||||
public static final String NAME_UNICOM = ResUtil.getString(R.string.xchat_android_library_utils_telephonyutils_03);
|
||||
public static final String NAME_UNKNOWN = ResUtil.getString(R.string.xchat_android_library_utils_telephonyutils_04);
|
||||
}
|
||||
|
||||
public static String getSimOperator(Context c) {
|
||||
|
@@ -10,7 +10,6 @@ import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.IllegalFormatException;
|
||||
import java.util.Locale;
|
||||
import java.util.TimeZone;
|
||||
@@ -547,40 +546,40 @@ public class TimeUtils {
|
||||
String xingzuo = "";
|
||||
switch (month) {
|
||||
case 1:
|
||||
xingzuo = day < 21 ? "摩羯座" : "水瓶座";
|
||||
xingzuo = day < 21 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_01) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_02);
|
||||
break;
|
||||
case 2:
|
||||
xingzuo = day < 20 ? "水瓶座" : "双鱼座";
|
||||
xingzuo = day < 20 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_03) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_04);
|
||||
break;
|
||||
case 3:
|
||||
xingzuo = day < 21 ? "双鱼座" : "白羊座";
|
||||
xingzuo = day < 21 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_05) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_06);
|
||||
break;
|
||||
case 4:
|
||||
xingzuo = day < 21 ? "白羊座" : "金牛座";
|
||||
xingzuo = day < 21 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_07) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_08);
|
||||
break;
|
||||
case 5:
|
||||
xingzuo = day < 22 ? "金牛座" : "双子座";
|
||||
xingzuo = day < 22 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_09) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_010);
|
||||
break;
|
||||
case 6:
|
||||
xingzuo = day < 22 ? "双子座" : "巨蟹座";
|
||||
xingzuo = day < 22 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_011) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_012);
|
||||
break;
|
||||
case 7:
|
||||
xingzuo = day < 23 ? "巨蟹座" : "狮子座";
|
||||
xingzuo = day < 23 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_013) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_014);
|
||||
break;
|
||||
case 8:
|
||||
xingzuo = day < 24 ? "狮子座" : "处女座";
|
||||
xingzuo = day < 24 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_015) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_016);
|
||||
break;
|
||||
case 9:
|
||||
xingzuo = day < 24 ? "处女座" : "天秤座";
|
||||
xingzuo = day < 24 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_017) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_018);
|
||||
break;
|
||||
case 10:
|
||||
xingzuo = day < 24 ? "天秤座" : "天蝎座";
|
||||
xingzuo = day < 24 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_019) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_020);
|
||||
break;
|
||||
case 11:
|
||||
xingzuo = day < 23 ? "天蝎座" : "射手座";
|
||||
xingzuo = day < 23 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_021) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_022);
|
||||
break;
|
||||
case 12:
|
||||
xingzuo = day < 22 ? "射手座" : "摩羯座";
|
||||
xingzuo = day < 22 ? ResUtil.getString(R.string.xchat_android_library_utils_timeutils_023) : ResUtil.getString(R.string.xchat_android_library_utils_timeutils_024);
|
||||
break;
|
||||
}
|
||||
return xingzuo;
|
||||
@@ -673,7 +672,7 @@ public class TimeUtils {
|
||||
LogUtil.print("end" + end_hour);
|
||||
LogUtil.print("minuteOfDay" + currentTime);
|
||||
if (currentTime >= start_hour && currentTime <= end_hour) {
|
||||
LogUtil.print("工作时间内" + hour + ":" + minute);
|
||||
LogUtil.print(ResUtil.getString(R.string.xchat_android_library_utils_timeutils_025) + hour + ":" + minute);
|
||||
return true;
|
||||
} else {
|
||||
if (start_hour > end_hour) {
|
||||
@@ -681,7 +680,7 @@ public class TimeUtils {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
LogUtil.print("工作时间外" + hour + ":" + minute);
|
||||
LogUtil.print(ResUtil.getString(R.string.xchat_android_library_utils_timeutils_026) + hour + ":" + minute);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -936,10 +935,10 @@ public class TimeUtils {
|
||||
// int minuteOfDay = Integer.parseInt(hour) * 60 + Integer.parseInt(minute);
|
||||
// Log.i("stf", "--hour:minute-->" + hour + ":" + minute);
|
||||
// if (minuteOfDay >= start && minuteOfDay <= end) {
|
||||
// LogUtil.print("工作时间内" + hour + ":" + minute);
|
||||
// LogUtil.print(ResUtil.getString(R.string.xchat_android_library_utils_timeutils_027) + hour + ":" + minute);
|
||||
// return true;
|
||||
// } else {
|
||||
// LogUtil.print( "工作时间外" + hour + ":" + minute);
|
||||
// LogUtil.print( ResUtil.getString(R.string.xchat_android_library_utils_timeutils_028) + hour + ":" + minute);
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
@@ -3,6 +3,7 @@ package com.yizhuan.xchat_android_library.utils;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
|
||||
public class VersionUtil {
|
||||
@@ -163,7 +164,7 @@ public class VersionUtil {
|
||||
public String aboutDisplayName(Context c) {
|
||||
if (isSnapshot) {
|
||||
return String.format("%d.%d.%d-%s(%d.%s.%d)%s", mMajor, mMinor, mBuild,
|
||||
"内测版",
|
||||
ResUtil.getString(R.string.xchat_android_library_utils_versionutil_01),
|
||||
0, AppMetaDataUtil.getSvnBuildVersion(c), VersionUtil.getVersionCode(c),
|
||||
BasicConfig.INSTANCE.isDebuggable() ? "D" : "");
|
||||
}
|
||||
|
@@ -3,6 +3,7 @@ package com.yizhuan.xchat_android_library.utils;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.orhanobut.logger.Logger;
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
@@ -100,7 +101,7 @@ public final class ZipUtils {
|
||||
String lastFileNameNoEx = FileUtils.getLastFileNameNoEx(srcFile);
|
||||
if (!TextUtils.isEmpty(lastFileNameNoEx)) {
|
||||
destFile = destFile + File.separator + lastFileNameNoEx + "." + ZIP;
|
||||
Logger.i("构建zip完整路径成功: %s", destFile);
|
||||
Logger.i(ResUtil.getString(R.string.xchat_android_library_utils_ziputils_01), destFile);
|
||||
}
|
||||
}
|
||||
outZip = new ZipOutputStream(new FileOutputStream(destFile));
|
||||
|
@@ -2,9 +2,9 @@ package com.yizhuan.xchat_android_library.utils.cache;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
import com.yizhuan.xchat_android_library.utils.StringUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.codec.MD5Utils;
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
import com.yizhuan.xchat_android_library.utils.file.StorageUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.json.JsonParser;
|
||||
import com.yizhuan.xchat_android_library.utils.log.MLog;
|
||||
|
@@ -6,6 +6,8 @@ import android.os.Environment;
|
||||
import android.os.StatFs;
|
||||
import android.util.Log;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.StringUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.json.JsonParser;
|
||||
import com.yizhuan.xchat_android_library.utils.log.MLog;
|
||||
@@ -337,7 +339,7 @@ public class StringDiskCache {
|
||||
}
|
||||
|
||||
long end0 = System.currentTimeMillis();
|
||||
MLog.info(TAG, file + ":BufferedOutputStream执行耗时:" + (end0 - begin0) + " 豪秒");
|
||||
MLog.info(TAG, file + ResUtil.getString(R.string.utils_cache_stringdiskcache_01) + (end0 - begin0) + ResUtil.getString(R.string.utils_cache_stringdiskcache_02));
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@@ -1,11 +1,5 @@
|
||||
package com.yizhuan.xchat_android_library.utils.codec;
|
||||
|
||||
/**
|
||||
* /**
|
||||
*
|
||||
* @author liuguofu
|
||||
*/
|
||||
|
||||
import android.util.Base64;
|
||||
|
||||
import com.yizhuan.xchat_android_library.utils.StringUtils;
|
||||
@@ -57,12 +51,12 @@ public class DESUtils {
|
||||
String pwd = "1ea53d260ecf11e7b56e00163e046a26";
|
||||
//客户端加密
|
||||
// String data = DESAndBase64Encrypt(text, pwd);
|
||||
// System.out.println("text DES加密后base64:" + URLEncoder.encode(data, "UTF-8"));
|
||||
// System.out.println(ResUtil.getString(R.string.utils_codec_desutils_01) + URLEncoder.encode(data, "UTF-8"));
|
||||
|
||||
//服务端解密
|
||||
// String textDecrypt = DESAndBase64Decrypt(data, pwd);
|
||||
// System.out.println("未处理原文:" + text);
|
||||
// System.out.println("解密后数据:" + textDecrypt);
|
||||
// System.out.println(ResUtil.getString(R.string.utils_codec_desutils_02) + text);
|
||||
// System.out.println(ResUtil.getString(R.string.utils_codec_desutils_03) + textDecrypt);
|
||||
|
||||
|
||||
// byte[] bytes = text.getBytes();
|
||||
|
@@ -9,10 +9,12 @@ import android.os.Build;
|
||||
import android.os.Environment;
|
||||
|
||||
import com.google.gson.internal.LinkedTreeMap;
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.MimeType;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.StringUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.cache.CacheClientFactory;
|
||||
import com.yizhuan.xchat_android_library.utils.cache.ReturnCallback;
|
||||
import com.yizhuan.xchat_android_library.utils.MimeType;
|
||||
import com.yizhuan.xchat_android_library.utils.StringUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.log.MLog;
|
||||
|
||||
import java.io.File;
|
||||
@@ -138,7 +140,7 @@ public class DownloadManagerUtil {
|
||||
// Make a new request pointing to the .apk url
|
||||
DownloadManager.Request request = new DownloadManager.Request(source);
|
||||
// appears the same in Notification bar while downloading
|
||||
request.setDescription("正在下载");
|
||||
request.setDescription(ResUtil.getString(R.string.utils_download_downloadmanagerutil_01));
|
||||
request.setTitle(fileName);
|
||||
request.setMimeType(mimeType);
|
||||
|
||||
|
@@ -40,7 +40,7 @@ public class DownloadReceiver extends BroadcastReceiver {
|
||||
// DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
|
||||
// //点击通知栏取消下载
|
||||
// dm.remove(ids);
|
||||
// SingleToastUtil.showToast(context, "已经取消下载");
|
||||
// SingleToastUtil.showToast(context, ResUtil.getString(R.string.utils_download_downloadreceiver_01));
|
||||
//
|
||||
// for (int i = 0, size = ids.length; i < size; i++) {
|
||||
// DownloadManagerUtil.removeDownloadId(context, ids[i]);
|
||||
|
@@ -6,7 +6,9 @@ import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.os.StatFs;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.FP;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.log.MLog;
|
||||
|
||||
import java.io.File;
|
||||
@@ -278,7 +280,7 @@ public class BasicFileUtils {
|
||||
}
|
||||
|
||||
if (height > SCAN_MAX_RECURSION_HEIGHT) {
|
||||
MLog.warn("sqr", "遍历到限制最大层数了");
|
||||
MLog.warn("sqr", ResUtil.getString(R.string.utils_file_basicfileutils_01));
|
||||
return;
|
||||
} else {
|
||||
height++;
|
||||
@@ -303,12 +305,12 @@ public class BasicFileUtils {
|
||||
}
|
||||
} else {
|
||||
MLog.warn("sqr", directories.getAbsolutePath()
|
||||
+ "目录包含非标准文件"
|
||||
+ ResUtil.getString(R.string.utils_file_basicfileutils_02)
|
||||
+ fileList[i] == null ? " null" : fileList[i].getAbsolutePath());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
MLog.warn("sqr", directories.getAbsolutePath() + "目录为空");
|
||||
MLog.warn("sqr", directories.getAbsolutePath() + ResUtil.getString(R.string.utils_file_basicfileutils_03));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
|
@@ -15,12 +15,12 @@ import android.os.Environment;
|
||||
import android.provider.MediaStore;
|
||||
import android.util.Pair;
|
||||
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
import com.yizhuan.xchat_android_library.utils.BlankUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.FP;
|
||||
import com.yizhuan.xchat_android_library.utils.StringUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.codec.MD5Utils;
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
import com.yizhuan.xchat_android_library.utils.log.MLog;
|
||||
import com.yizhuan.xchat_android_library.utils.BlankUtil;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
|
@@ -15,12 +15,16 @@
|
||||
*******************************************************************************/
|
||||
package com.yizhuan.xchat_android_library.utils.file;
|
||||
|
||||
import static android.os.Environment.MEDIA_MOUNTED;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.Environment;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.StringUtils;
|
||||
|
||||
import java.io.File;
|
||||
@@ -31,8 +35,6 @@ import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
|
||||
import static android.os.Environment.MEDIA_MOUNTED;
|
||||
|
||||
/**
|
||||
* Provides application storage paths
|
||||
*
|
||||
@@ -236,11 +238,11 @@ public final class StorageUtils {
|
||||
info.size = file.getTotalSpace();
|
||||
storageList.add(info);
|
||||
}
|
||||
// PlayMgrLog.log(LogTag.mounts, "过滤得到的mout表信息:" + storageList + "\n\r");
|
||||
// PlayMgrLog.log(LogTag.mounts, ResUtil.getString(R.string.utils_file_storageutils_01) + storageList + "\n\r");
|
||||
storageList = filterSubSdcards(storageList, storagePath);
|
||||
// PlayMgrLog.log(LogTag.mounts, "过滤子目录后得到的mout信息:" + storageList + "\n\r");
|
||||
// PlayMgrLog.log(LogTag.mounts, ResUtil.getString(R.string.utils_file_storageutils_02) + storageList + "\n\r");
|
||||
storageList = filterSameSdcards(storageList, storagePath);
|
||||
// PlayMgrLog.log(LogTag.mounts, "过滤相同目录后得到的mout信息:" + storageList + "\n\r");
|
||||
// PlayMgrLog.log(LogTag.mounts, ResUtil.getString(R.string.utils_file_storageutils_03) + storageList + "\n\r");
|
||||
return storageList;
|
||||
}
|
||||
|
||||
@@ -263,7 +265,7 @@ public final class StorageUtils {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("[挂载点 device:%s;path:%s;size:%s;type:%s]", device, path, size,
|
||||
return String.format(ResUtil.getString(R.string.utils_file_storageutils_04), device, path, size,
|
||||
type);
|
||||
}
|
||||
}
|
||||
|
@@ -19,7 +19,9 @@ import android.graphics.RectF;
|
||||
import android.media.ExifInterface;
|
||||
import android.util.Log;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.LogUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
import com.yizhuan.xchat_android_library.utils.StringUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.file.JXFileUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.log.MLog;
|
||||
@@ -707,27 +709,27 @@ public class JXImageUtils {
|
||||
//读取原图的旋转角度,并写入到压缩图片中
|
||||
ExifInterface exif = new ExifInterface(inPath);
|
||||
String orientation = exif.getAttribute(ExifInterface.TAG_ORIENTATION);
|
||||
LogUtil.print("原图:" + inPath);
|
||||
LogUtil.print("原图旋转角度:" + getPicRotate(inPath));
|
||||
LogUtil.print(ResUtil.getString(R.string.utils_image_jximageutils_01) + inPath);
|
||||
LogUtil.print(ResUtil.getString(R.string.utils_image_jximageutils_02) + getPicRotate(inPath));
|
||||
|
||||
BitmapFactory.Options bmOptions = new BitmapFactory.Options();
|
||||
bmOptions.inPreferredConfig = Config.RGB_565;
|
||||
bmOptions.inSampleSize = getExpectInSampleSize(inPath, expectWidth);
|
||||
Bitmap bitmap = BitmapFactory.decodeFile(inPath, bmOptions);
|
||||
|
||||
LogUtil.print("宽高," + bitmap.getWidth() + "," + bitmap.getHeight());
|
||||
LogUtil.print(ResUtil.getString(R.string.utils_image_jximageutils_03) + bitmap.getWidth() + "," + bitmap.getHeight());
|
||||
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||
int options = 100;
|
||||
int minQuality = 20;
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos);//质量压缩方法,把压缩后的数据存放到baos中 (100表示不压缩,0表示压缩到最小)
|
||||
Log.e("mouse_debug", "压缩前质量:" + baos.toByteArray().length);
|
||||
Log.e("mouse_debug", ResUtil.getString(R.string.utils_image_jximageutils_04) + baos.toByteArray().length);
|
||||
while (baos.toByteArray().length > expectSize) {//循环判断如果压缩后图片是否大于指定大小,大于继续压缩
|
||||
baos.reset();//重置baos即让下一次的写入覆盖之前的内容
|
||||
options -= 5;//图片质量每次减少5
|
||||
|
||||
if (options <= minQuality) options = minQuality;//如果图片质量小于5,为保证压缩后的图片质量,图片最底压缩质量为5
|
||||
LogUtil.print("压缩参数:" + options);
|
||||
LogUtil.print(ResUtil.getString(R.string.utils_image_jximageutils_05) + options);
|
||||
bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos);//将压缩后的图片保存到baos中
|
||||
if (options == minQuality) break;//如果图片的质量已降到最低则,不再进行压缩
|
||||
}
|
||||
@@ -751,14 +753,14 @@ public class JXImageUtils {
|
||||
exif.setAttribute(ExifInterface.TAG_ORIENTATION, orientation);
|
||||
exif.saveAttributes();
|
||||
}
|
||||
LogUtil.print("压缩图旋转角度:" + getPicRotate(compressPath));
|
||||
LogUtil.print(ResUtil.getString(R.string.utils_image_jximageutils_06) + getPicRotate(compressPath));
|
||||
return compressPath;
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
Log.e("mouse_debug", "压缩失败...");
|
||||
Log.e("mouse_debug", ResUtil.getString(R.string.utils_image_jximageutils_07));
|
||||
ex.printStackTrace();
|
||||
} catch (OutOfMemoryError error) {
|
||||
LogUtil.print("压缩图片OOM了");
|
||||
LogUtil.print(ResUtil.getString(R.string.utils_image_jximageutils_08));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@@ -6,9 +6,9 @@ import android.os.Process;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
import com.yizhuan.xchat_android_library.utils.FP;
|
||||
import com.yizhuan.xchat_android_library.utils.LogCallerUtils;
|
||||
import com.yizhuan.xchat_android_library.utils.config.BasicConfig;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.PrintWriter;
|
||||
|
@@ -1,13 +1,12 @@
|
||||
package com.yizhuan.xchat_android_library.utils.pref;
|
||||
|
||||
/**
|
||||
* Created by zhouxiangfeng on 2017/4/15.
|
||||
*/
|
||||
|
||||
import android.content.SharedPreferences;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
@@ -295,7 +294,7 @@ public abstract class XSharedPref
|
||||
editor.commit();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
Log.e("", "保存obj失败");
|
||||
Log.e("", ResUtil.getString(R.string.utils_pref_xsharedpref_01));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -2,9 +2,10 @@ package com.yizhuan.xchat_android_library.widget;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
||||
import androidx.annotation.Nullable;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.yizhuan.xchat_android_library.utils.CenterDrawableHelper;
|
||||
|
||||
|
||||
|
@@ -4,9 +4,10 @@ import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.GradientDrawable;
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import androidx.constraintlayout.widget.ConstraintLayout;
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
|
||||
/**
|
||||
|
@@ -2,10 +2,11 @@ package com.yizhuan.xchat_android_library.widget.decoration;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
/**
|
||||
*
|
||||
* 水平和竖直分割线宽度不同
|
||||
|
@@ -3,6 +3,8 @@ package com.yizhuan.xchat_android_library.widget.xlist;
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
@@ -10,7 +12,8 @@ import androidx.recyclerview.widget.OrientationHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
|
||||
|
||||
import android.view.View;
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
/**
|
||||
* FamiliarRecyclerView Default ItemDecoration
|
||||
@@ -380,7 +383,7 @@ public class FamiliarDefaultItemDecoration extends RecyclerView.ItemDecoration {
|
||||
return ;
|
||||
} else if (isFooterViewPos(headersCount, footerCount, itemViewCount, position)) {
|
||||
// footer
|
||||
print("设置底部间距");
|
||||
print(ResUtil.getString(R.string.widget_xlist_familiardefaultitemdecoration_01));
|
||||
int leftOrTopSize;
|
||||
if (isFooterDividersEnabled) {
|
||||
leftOrTopSize = mOrientation == OrientationHelper.HORIZONTAL ?
|
||||
|
@@ -3,14 +3,14 @@ package com.yizhuan.xchat_android_library.widget.xlist;
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.OrientationHelper;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.recyclerview.widget.StaggeredGridLayoutManager;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
|
||||
|
||||
import com.yizhuan.xchat_android_library.R;
|
||||
|
||||
|
@@ -1,12 +1,119 @@
|
||||
<resources>
|
||||
<string name="app_name">XChat_Android_Library</string>
|
||||
|
||||
<string name="str_right_now">刚刚</string>
|
||||
<string name="str_right_now">剛剛</string>
|
||||
<string name="str_today">今天</string>
|
||||
<string name="str_yesterday">昨天</string>
|
||||
<string name="str_day_before_yesterday">前天</string>
|
||||
<string name="str_short_date_format">%1$d月%2$d日</string>
|
||||
<string name="str_date_format">%1$d年%2$d月%3$d日</string>
|
||||
<string name="str_minutes_ago_format">%1$d分钟前</string>
|
||||
<string name="str_hours_ago_format">%1$d小时前</string>
|
||||
<string name="str_minutes_ago_format">%1$d分鐘前</string>
|
||||
<string name="str_hours_ago_format">%1$d小時前</string>
|
||||
<string name="base_factory_basemvpproxy_01">這個方法只能在getMvpPresenter()之前調用,如果Presenter已經創建了則不能再更改!!!</string>
|
||||
<string name="base_factory_presentermvpfactoryimpl_01">Presenter 創建失敗,檢查是否聲明了@CreatePresenter(xxx.class)註解!!!----</string>
|
||||
<string name="rxnet_interceptor_httpcacheinterceptor_01">沒有網絡,強製獲取緩存!</string>
|
||||
<string name="net_rxnet_rxnet_01">請在項目中先調用RxNet.init()方法初始化!!!</string>
|
||||
<string name="xchat_android_library_service_erbanservice_01">開始後臺任務......%d</string>
|
||||
<string name="xchat_android_library_service_erbanservice_02">執行刪除日誌文件</string>
|
||||
<string name="xchat_android_library_service_erbanservice_03">成功</string>
|
||||
<string name="xchat_android_library_service_erbanservice_04">失敗</string>
|
||||
<string name="xchat_android_library_service_erbanservice_05">停止後臺任務......%d</string>
|
||||
<string name="xchat_android_library_threadmgr_schedulepolicy_01">單線程池並發過高執行拋棄策略</string>
|
||||
<string name="xchat_android_library_threadmgr_speakpolicy_01">光暈並發過高執行拋棄策略</string>
|
||||
<string name="utils_cache_stringdiskcache_01">:BufferedOutputStream執行耗時:</string>
|
||||
<string name="utils_cache_stringdiskcache_02"> 豪秒</string>
|
||||
<string name="utils_codec_desutils_01">text DES加密後base64:</string>
|
||||
<string name="utils_codec_desutils_02">未處理原文:</string>
|
||||
<string name="utils_codec_desutils_03">解密後數據:</string>
|
||||
<string name="utils_download_downloadmanagerutil_01">正在下載</string>
|
||||
<string name="utils_download_downloadreceiver_01">已經取消下載</string>
|
||||
<string name="utils_file_basicfileutils_01">遍歷到限製最大層數了</string>
|
||||
<string name="utils_file_basicfileutils_02">目錄包含非標準文件</string>
|
||||
<string name="utils_file_basicfileutils_03">目錄為空</string>
|
||||
<string name="utils_file_storageutils_01">過濾得到的mout表信息:</string>
|
||||
<string name="utils_file_storageutils_02">過濾子目錄後得到的mout信息:</string>
|
||||
<string name="utils_file_storageutils_03">過濾相同目錄後得到的mout信息:</string>
|
||||
<string name="utils_file_storageutils_04">[掛載點 device:%s;path:%s;size:%s;type:%s]</string>
|
||||
<string name="xchat_android_library_utils_formatutils_01">萬</string>
|
||||
<string name="xchat_android_library_utils_formatutils_02">億</string>
|
||||
<string name="xchat_android_library_utils_formatutils_03">兆</string>
|
||||
<string name="xchat_android_library_utils_formatutils_04">格式化異常。</string>
|
||||
<string name="xchat_android_library_utils_formatutils_05">萬</string>
|
||||
<string name="utils_image_jximageutils_01">原圖:</string>
|
||||
<string name="utils_image_jximageutils_02">原圖旋轉角度:</string>
|
||||
<string name="utils_image_jximageutils_03">寬高,</string>
|
||||
<string name="utils_image_jximageutils_04">壓縮前質量:</string>
|
||||
<string name="utils_image_jximageutils_05">壓縮參數:</string>
|
||||
<string name="utils_image_jximageutils_06">壓縮圖旋轉角度:</string>
|
||||
<string name="utils_image_jximageutils_07">壓縮失敗...</string>
|
||||
<string name="utils_image_jximageutils_08">壓縮圖片OOM了</string>
|
||||
<string name="xchat_android_library_utils_javautil_01">parseLong錯誤</string>
|
||||
<string name="xchat_android_library_utils_javautil_02">parseInt錯誤</string>
|
||||
<string name="xchat_android_library_utils_javautil_03">str2double錯誤</string>
|
||||
<string name="xchat_android_library_utils_javautil_04">str2double2len錯誤</string>
|
||||
<string name="xchat_android_library_utils_javautil_05">str2double0len錯誤</string>
|
||||
<string name="xchat_android_library_utils_javautil_06">parseFloat錯誤</string>
|
||||
<string name="xchat_android_library_utils_javautil_07">一</string>
|
||||
<string name="xchat_android_library_utils_javautil_08">二</string>
|
||||
<string name="xchat_android_library_utils_javautil_09">三</string>
|
||||
<string name="xchat_android_library_utils_javautil_010">四</string>
|
||||
<string name="xchat_android_library_utils_javautil_011">五</string>
|
||||
<string name="xchat_android_library_utils_javautil_012">六</string>
|
||||
<string name="xchat_android_library_utils_javautil_013">七</string>
|
||||
<string name="xchat_android_library_utils_javautil_014">日</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_01">6.0以下</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_02">6.0以下</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_03">6.0以下</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_04">6.0以上7.0以下</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_05">6.0以上7.0以下</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_06">6.0以上7.0以下</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_07">7.0以上</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_08">7.0以上1</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_09">7.0以上1</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_010">7.0以上1</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_011">7.0以上2</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_012">7.0以上2</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_013">7.0以上2</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_014">7.0以上3</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_015">7.0以上3</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_016">7.0以上3</string>
|
||||
<string name="xchat_android_library_utils_macaddressutils_017">網絡異常</string>
|
||||
<string name="xchat_android_library_utils_nullutils_01"> 不能為null !</string>
|
||||
<string name="utils_pref_xsharedpref_01">保存obj失敗</string>
|
||||
<string name="xchat_android_library_utils_telephonyutils_01">中國移動</string>
|
||||
<string name="xchat_android_library_utils_telephonyutils_02">中國電信</string>
|
||||
<string name="xchat_android_library_utils_telephonyutils_03">中國聯通</string>
|
||||
<string name="xchat_android_library_utils_telephonyutils_04">未知</string>
|
||||
<string name="xchat_android_library_utils_timeutils_01">摩羯座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_02">水瓶座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_03">水瓶座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_04">雙魚座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_05">雙魚座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_06">白羊座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_07">白羊座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_08">金牛座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_09">金牛座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_010">雙子座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_011">雙子座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_012">巨蟹座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_013">巨蟹座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_014">獅子座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_015">獅子座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_016">處女座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_017">處女座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_018">天秤座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_019">天秤座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_020">天蠍座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_021">天蠍座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_022">射手座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_023">射手座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_024">摩羯座</string>
|
||||
<string name="xchat_android_library_utils_timeutils_025">工作時間內</string>
|
||||
<string name="xchat_android_library_utils_timeutils_026">工作時間外</string>
|
||||
<string name="xchat_android_library_utils_timeutils_027">工作時間內</string>
|
||||
<string name="xchat_android_library_utils_timeutils_028">工作時間外</string>
|
||||
<string name="xchat_android_library_utils_versionutil_01">內測版</string>
|
||||
<string name="xchat_android_library_utils_ziputils_01">構建zip完整路徑成功: %s</string>
|
||||
<string name="widget_xlist_familiardefaultitemdecoration_01">設置底部間距</string>
|
||||
</resources>
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
package com.yizhuan.xchat_android_library;
|
||||
|
||||
import org.junit.Test;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* Example local unit test, which will execute on the development machine (host).
|
||||
|
Reference in New Issue
Block a user