Quantcast
Viewing latest article 20
Browse Latest Browse All 42

Service Notification Text Uses System Language

My app support 2 languages,English and Hebrew. When I change the language to English and minimize the app, the service notification text showing in Hebrew instead of English.Besides of the notification,the translation is working perfectly.

Now as I mentioned in the title,I figured out that its happening because my system language is Hebrew.

How can I overcome this issue ?

Thank you !

EDIT:

Change Language Button (Only MainActivity,From popup menu) -

        popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {            public boolean onMenuItemClick(MenuItem menu_item) {                int itemId = menu_item.getItemId();                if (itemId == R.id.English) {                        changeLang(getApplicationContext(), "en");                        getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_LTR);                    finish();                    startActivity(new Intent(getApplicationContext(), MainActivity.class));                } else if (itemId == R.id.Hebrew) {                        changeLang(getApplicationContext(), "iw");                        getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);                    finish();                    startActivity(new Intent(getApplicationContext(), MainActivity.class));                }                return true;            }        });    @Override    protected void attachBaseContext(Context newBase) {        SharedPreferences preferences =   PreferenceManager.getDefaultSharedPreferences(newBase);        LANG_CURRENT = preferences.getString("Language", "en");        super.attachBaseContext(MyContextWrapper.wrap(newBase, LANG_CURRENT));    }    public void changeLang(Context context, String lang) {        SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);        SharedPreferences.Editor editor = preferences.edit();        editor.putString("Language", lang);        editor.apply();    }

Service onCreate -

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {        if (MainActivity.LANG_CURRENT.equals("en")) {            changeLang(getApplicationContext(),"en");            Lang = "en";        } else {            changeLang(getApplicationContext(),"iw");            Lang = "iw";        }        }

Service Notification -

NotificationCompat.Action action = new NotificationCompat.Action(R.drawable.ic_launch, getString(R.string.launch), activityPendingIntent);NotificationCompat.Action action2 = new NotificationCompat.Action(R.drawable.ic_cancel, getString(R.string.stop), servicePendingIntent);NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);Notification notification = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID)        .setContentTitle(getString(R.string.launch))        .addAction(action)        .addAction(action2)        .setColor(getColor(R.color.foreGroundBackgroundColor))        .setPriority(NotificationManager.IMPORTANCE_HIGH)        .setCategory(Notification.CATEGORY_SERVICE)        .setSmallIcon(R.drawable.applogo)        .build();startForeground(2, notification);

The translation is working perfectly for all the activities except for the service notification..

THE SOLUTION THANKS TO @Eyosiyas -

Service Activity -

In onStartCommand I did this -

if (MainActivity.LANG_CURRENT.equals("en")) {    Locale locale = new Locale("en");    Locale.setDefault(locale);    Resources resources = this.getResources();    Configuration config = resources.getConfiguration();    config.setLocale(locale);    resources.updateConfiguration(config, resources.getDisplayMetrics());} else {    Locale locale = new Locale("iw");    Locale.setDefault(locale);    Resources resources = this.getResources();    Configuration config = resources.getConfiguration();    config.setLocale(locale);    resources.updateConfiguration(config, resources.getDisplayMetrics());}

Viewing latest article 20
Browse Latest Browse All 42

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>