Configurable language, part 3
This commit is contained in:
@@ -6,6 +6,7 @@ import android.os.Bundle;
|
|||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
|
import android.support.v4.content.LocalBroadcastManager;
|
||||||
import android.support.v4.preference.PreferenceFragment;
|
import android.support.v4.preference.PreferenceFragment;
|
||||||
import android.support.v7.widget.Toolbar;
|
import android.support.v7.widget.Toolbar;
|
||||||
|
|
||||||
@@ -13,6 +14,7 @@ import i2p.bote.android.BoteActivityBase;
|
|||||||
import i2p.bote.android.EmailListActivity;
|
import i2p.bote.android.EmailListActivity;
|
||||||
import i2p.bote.android.R;
|
import i2p.bote.android.R;
|
||||||
import i2p.bote.android.identities.IdentityListActivity;
|
import i2p.bote.android.identities.IdentityListActivity;
|
||||||
|
import i2p.bote.android.service.BoteService;
|
||||||
|
|
||||||
public class SettingsActivity extends BoteActivityBase implements
|
public class SettingsActivity extends BoteActivityBase implements
|
||||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||||
@@ -67,6 +69,8 @@ public class SettingsActivity extends BoteActivityBase implements
|
|||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||||
if (key.equals("pref_language")) {
|
if (key.equals("pref_language")) {
|
||||||
notifyLocaleChanged();
|
notifyLocaleChanged();
|
||||||
|
Intent intent = new Intent(BoteService.LOCAL_BROADCAST_LOCALE_CHANGED);
|
||||||
|
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,14 +4,17 @@ import android.app.Notification;
|
|||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
import android.content.ServiceConnection;
|
import android.content.ServiceConnection;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.RemoteException;
|
import android.os.RemoteException;
|
||||||
import android.support.v4.app.NotificationCompat;
|
import android.support.v4.app.NotificationCompat;
|
||||||
|
import android.support.v4.content.LocalBroadcastManager;
|
||||||
|
|
||||||
import net.i2p.android.router.service.IRouterState;
|
import net.i2p.android.router.service.IRouterState;
|
||||||
import net.i2p.android.router.service.IRouterStateCallback;
|
import net.i2p.android.router.service.IRouterStateCallback;
|
||||||
@@ -35,6 +38,7 @@ import i2p.bote.android.R;
|
|||||||
import i2p.bote.android.ViewEmailActivity;
|
import i2p.bote.android.ViewEmailActivity;
|
||||||
import i2p.bote.android.service.Init.RouterChoice;
|
import i2p.bote.android.service.Init.RouterChoice;
|
||||||
import i2p.bote.android.util.BoteHelper;
|
import i2p.bote.android.util.BoteHelper;
|
||||||
|
import i2p.bote.android.util.LocaleManager;
|
||||||
import i2p.bote.email.Email;
|
import i2p.bote.email.Email;
|
||||||
import i2p.bote.fileencryption.PasswordException;
|
import i2p.bote.fileencryption.PasswordException;
|
||||||
import i2p.bote.folder.EmailFolder;
|
import i2p.bote.folder.EmailFolder;
|
||||||
@@ -43,13 +47,33 @@ import i2p.bote.network.NetworkStatus;
|
|||||||
import i2p.bote.network.NetworkStatusListener;
|
import i2p.bote.network.NetworkStatusListener;
|
||||||
|
|
||||||
public class BoteService extends Service implements NetworkStatusListener, NewEmailListener {
|
public class BoteService extends Service implements NetworkStatusListener, NewEmailListener {
|
||||||
|
/**
|
||||||
|
* The locale has just changed.
|
||||||
|
*/
|
||||||
|
public static final String LOCAL_BROADCAST_LOCALE_CHANGED = "i2p.bote.android.LOCAL_BROADCAST_LOCALE_CHANGED";
|
||||||
|
|
||||||
public static final String ROUTER_CHOICE = "router_choice";
|
public static final String ROUTER_CHOICE = "router_choice";
|
||||||
public static final int NOTIF_ID_SERVICE = 8073;
|
public static final int NOTIF_ID_SERVICE = 8073;
|
||||||
public static final int NOTIF_ID_NEW_EMAIL = 80739047;
|
public static final int NOTIF_ID_NEW_EMAIL = 80739047;
|
||||||
|
|
||||||
|
private LocaleManager localeManager = new LocaleManager();
|
||||||
|
|
||||||
RouterChoice mRouterChoice;
|
RouterChoice mRouterChoice;
|
||||||
NotificationCompat.Builder mStatusBuilder;
|
NotificationCompat.Builder mStatusBuilder;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate() {
|
||||||
|
LocalBroadcastManager.getInstance(this).registerReceiver(onLocaleChanged, new IntentFilter(LOCAL_BROADCAST_LOCALE_CHANGED));
|
||||||
|
}
|
||||||
|
|
||||||
|
private BroadcastReceiver onLocaleChanged = new BroadcastReceiver() {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
localeManager.updateServiceLocale(BoteService.this);
|
||||||
|
networkStatusChanged();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||||
mRouterChoice = (RouterChoice) intent.getSerializableExtra(ROUTER_CHOICE);
|
mRouterChoice = (RouterChoice) intent.getSerializableExtra(ROUTER_CHOICE);
|
||||||
@@ -104,6 +128,8 @@ public class BoteService extends Service implements NetworkStatusListener, NewEm
|
|||||||
}
|
}
|
||||||
mTriedBindState = false;
|
mTriedBindState = false;
|
||||||
|
|
||||||
|
LocalBroadcastManager.getInstance(this).unregisterReceiver(onLocaleChanged);
|
||||||
|
|
||||||
I2PBote.getInstance().removeNetworkStatusListener(this);
|
I2PBote.getInstance().removeNetworkStatusListener(this);
|
||||||
I2PBote.getInstance().removeNewEmailListener(this);
|
I2PBote.getInstance().removeNewEmailListener(this);
|
||||||
new Thread(new Runnable() {
|
new Thread(new Runnable() {
|
||||||
|
|||||||
Reference in New Issue
Block a user