多语言切换
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
package com.yunbao.main.activity;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.yunbao.common.activity.AbsActivity;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.AppManager;
|
||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||
import com.yunbao.main.R;
|
||||
@@ -16,6 +19,7 @@ import java.util.Stack;
|
||||
public class LanguageSettingActivity extends AbsActivity {
|
||||
private LinearLayout traditionalChinese, english;
|
||||
private ImageView imgTraditionalChinese, imgEnglish;
|
||||
private Locale locale;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -25,6 +29,14 @@ public class LanguageSettingActivity extends AbsActivity {
|
||||
@Override
|
||||
protected void main() {
|
||||
super.main();
|
||||
locale = IMLoginManager.get(mContext).getLocaleLanguage();
|
||||
if (locale == Locale.SIMPLIFIED_CHINESE) {
|
||||
findViewById(R.id.img_english).setVisibility(View.GONE);
|
||||
findViewById(R.id.img_traditional_chinese).setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
findViewById(R.id.img_english).setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.img_traditional_chinese).setVisibility(View.GONE);
|
||||
}
|
||||
traditionalChinese = findViewById(R.id.traditional_chinese);
|
||||
english = findViewById(R.id.english);
|
||||
imgEnglish = findViewById(R.id.img_english);
|
||||
@@ -33,13 +45,23 @@ public class LanguageSettingActivity extends AbsActivity {
|
||||
ViewClicksAntiShake.clicksAntiShake(traditionalChinese, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
changeAllActivitysLanguage(Locale.SIMPLIFIED_CHINESE);
|
||||
locale = Locale.SIMPLIFIED_CHINESE;
|
||||
findViewById(R.id.img_english).setVisibility(View.GONE);
|
||||
findViewById(R.id.img_traditional_chinese).setVisibility(View.VISIBLE);
|
||||
}
|
||||
});
|
||||
ViewClicksAntiShake.clicksAntiShake(english, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
changeAllActivitysLanguage(Locale.US);
|
||||
locale = new Locale("en", "rUS");
|
||||
findViewById(R.id.img_english).setVisibility(View.VISIBLE);
|
||||
findViewById(R.id.img_traditional_chinese).setVisibility(View.GONE);
|
||||
}
|
||||
});
|
||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.complete), new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||
@Override
|
||||
public void onViewClicks() {
|
||||
changeAllActivitysLanguage(locale);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -47,8 +69,12 @@ public class LanguageSettingActivity extends AbsActivity {
|
||||
private void changeAllActivitysLanguage(Locale locale) {
|
||||
Stack<Activity> allActivityStacks = AppManager.getInstance().getAllActivityStacks();
|
||||
for (int i = 0; i < allActivityStacks.size(); i++) {
|
||||
LanguageUtil.shiftLanguage(locale, allActivityStacks.get(i),mContext);
|
||||
if (!(allActivityStacks.get(i) instanceof LanguageSettingActivity)) {
|
||||
LanguageUtil.shiftLanguage(locale, allActivityStacks.get(i), mContext);
|
||||
}
|
||||
}
|
||||
|
||||
IMLoginManager.get(mContext).setLanguage(locale != Locale.SIMPLIFIED_CHINESE);
|
||||
startActivity(new Intent(mContext, MainActivity.class));
|
||||
finish();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,19 +3,21 @@ package com.yunbao.main.adapter;
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.os.Build;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.yunbao.common.bean.LiveClassBean;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.main.R;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public class MainHomeLivesClassAdapter extends RecyclerView.Adapter<MainHomeLivesClassAdapter.Vh> {
|
||||
|
||||
@@ -71,6 +73,7 @@ public class MainHomeLivesClassAdapter extends RecyclerView.Adapter<MainHomeLive
|
||||
|
||||
class Vh extends RecyclerView.ViewHolder {
|
||||
TextView mName;
|
||||
|
||||
public Vh(View itemView) {
|
||||
super(itemView);
|
||||
mName = (TextView) itemView.findViewById(R.id.tv_class_name);
|
||||
@@ -80,11 +83,22 @@ public class MainHomeLivesClassAdapter extends RecyclerView.Adapter<MainHomeLive
|
||||
@SuppressLint("NewApi")
|
||||
void setData(LiveClassBean bean, int position) {
|
||||
itemView.setTag(position);
|
||||
mName.setText(bean.getName());
|
||||
if(position == choice){
|
||||
Locale locale;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
locale = mContext.getResources().getConfiguration().getLocales().get(0);
|
||||
} else {
|
||||
locale = mContext.getResources().getConfiguration().locale;
|
||||
}
|
||||
if (locale.getLanguage().equals("zh")) {
|
||||
mName.setText(bean.getChinese());
|
||||
} else {
|
||||
mName.setText(bean.getEnglish());
|
||||
}
|
||||
|
||||
if (position == choice) {
|
||||
mName.setBackgroundResource(R.drawable.button_ffc621);
|
||||
mName.setTextColor(Color.parseColor("#FFC621"));
|
||||
}else{
|
||||
} else {
|
||||
mName.setBackgroundResource(R.drawable.button_cbd5e0);
|
||||
mName.setTextColor(Color.parseColor("#484D68"));
|
||||
}
|
||||
|
||||
@@ -7,8 +7,6 @@ import android.content.res.Configuration;
|
||||
import android.content.res.Resources;
|
||||
import android.util.DisplayMetrics;
|
||||
|
||||
import com.yunbao.main.activity.MainActivity;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Locale;
|
||||
|
||||
@@ -42,9 +40,8 @@ public class LanguageUtil {
|
||||
DisplayMetrics dm = resources.getDisplayMetrics();
|
||||
config.locale = locale;
|
||||
resources.updateConfiguration(config, dm);
|
||||
if (!(activity instanceof MainActivity)) {
|
||||
activity.recreate();
|
||||
}
|
||||
activity.finish();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -3,10 +3,7 @@ package com.yunbao.main.views;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Outline;
|
||||
import android.net.Uri;
|
||||
import android.os.Environment;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
@@ -14,7 +11,6 @@ import android.view.ViewGroup;
|
||||
import android.view.ViewOutlineProvider;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.core.content.FileProvider;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
@@ -29,7 +25,6 @@ import com.yunbao.common.activity.WebViewActivity;
|
||||
import com.yunbao.common.adapter.RefreshAdapter;
|
||||
import com.yunbao.common.bean.AnchorRecommendModel;
|
||||
import com.yunbao.common.bean.BannerBean;
|
||||
import com.yunbao.common.bean.ConfigBean;
|
||||
import com.yunbao.common.bean.LiveBean;
|
||||
import com.yunbao.common.bean.LiveClassBean;
|
||||
import com.yunbao.common.bean.WeekListBean;
|
||||
@@ -37,10 +32,10 @@ import com.yunbao.common.custom.CommonRefreshView;
|
||||
import com.yunbao.common.custom.ItemDecoration;
|
||||
import com.yunbao.common.http.HttpCallback;
|
||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||
import com.yunbao.common.manager.LiveClassManager;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
import com.yunbao.common.utils.MicStatusManager;
|
||||
import com.yunbao.common.utils.RouteUtil;
|
||||
import com.yunbao.common.utils.ShareUtil;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.views.CustomViewHolder;
|
||||
import com.yunbao.live.event.LiveRoomChangeEvent;
|
||||
@@ -59,7 +54,6 @@ import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
import org.greenrobot.eventbus.ThreadMode;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@@ -272,37 +266,34 @@ public class MainHomeLiveViewHolder extends AbsMainHomeChildViewHolder implement
|
||||
mClassRecyclerViewTop = (RecyclerView) findViewById(R.id.classRecyclerView_top);
|
||||
mClassRecyclerViewTop.setHasFixedSize(true);
|
||||
mClassRecyclerViewTop.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
|
||||
ConfigBean configBean = CommonAppConfig.getInstance().getConfig();
|
||||
if (configBean != null) {
|
||||
List<LiveClassBean> list = configBean.getLiveClass();
|
||||
if (list != null && list.size() > 0) {
|
||||
List<LiveClassBean> targetList = new ArrayList<>();
|
||||
if (list.size() <= 6) {
|
||||
targetList.addAll(list);
|
||||
} else {
|
||||
targetList.addAll(list);
|
||||
}
|
||||
final MainHomeLivesClassAdapter topAdapter = new MainHomeLivesClassAdapter(mContext, targetList, false);
|
||||
topAdapter.setOnItemClickListener(new OnItemClickListener<LiveClassBean>() {
|
||||
@Override
|
||||
public void onItemClick(LiveClassBean bean, int position) {
|
||||
if (!canClick()) {
|
||||
return;
|
||||
}
|
||||
if (position != 0) {
|
||||
select = bean.getId();
|
||||
} else {
|
||||
select = 0;
|
||||
}
|
||||
mRefreshView.initData();
|
||||
topAdapter.choice = position;
|
||||
topAdapter.notifyDataSetChanged();
|
||||
|
||||
List<LiveClassBean> list = new LiveClassManager(mContext).getLiveClass();
|
||||
if (list != null && list.size() > 0) {
|
||||
List<LiveClassBean> targetList = new ArrayList<>();
|
||||
if (list.size() <= 6) {
|
||||
targetList.addAll(list);
|
||||
} else {
|
||||
targetList.addAll(list);
|
||||
}
|
||||
final MainHomeLivesClassAdapter topAdapter = new MainHomeLivesClassAdapter(mContext, targetList, false);
|
||||
topAdapter.setOnItemClickListener(new OnItemClickListener<LiveClassBean>() {
|
||||
@Override
|
||||
public void onItemClick(LiveClassBean bean, int position) {
|
||||
if (!canClick()) {
|
||||
return;
|
||||
}
|
||||
});
|
||||
if (mClassRecyclerViewTop != null) {
|
||||
mClassRecyclerViewTop.setAdapter(topAdapter);
|
||||
if (position != 0) {
|
||||
select = bean.getId();
|
||||
} else {
|
||||
select = 0;
|
||||
}
|
||||
mRefreshView.initData();
|
||||
topAdapter.choice = position;
|
||||
topAdapter.notifyDataSetChanged();
|
||||
|
||||
}
|
||||
});
|
||||
if (mClassRecyclerViewTop != null) {
|
||||
mClassRecyclerViewTop.setAdapter(topAdapter);
|
||||
}
|
||||
}
|
||||
View headView = mAdapter.getHeadView();
|
||||
|
||||
@@ -93,9 +93,9 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
|
||||
@Override
|
||||
protected String[] getTitles() {
|
||||
return new String[]{
|
||||
WordUtil.getString(R.string.follow),
|
||||
WordUtil.getString(R.string.hot),
|
||||
WordUtil.getString(R.string.recomment),
|
||||
mContext.getString(R.string.follow),
|
||||
mContext.getString(R.string.hot),
|
||||
mContext.getString(R.string.recomment),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
android:textStyle="bold" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/complete"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
|
||||
@@ -161,7 +161,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:visibility="gone"
|
||||
android:visibility="visible"
|
||||
android:paddingTop="15dp"
|
||||
android:paddingBottom="25dp">
|
||||
|
||||
|
||||
Reference in New Issue
Block a user