diff --git a/KdeConnect/src/main/java/org/kde/connect/Device.java b/KdeConnect/src/main/java/org/kde/connect/Device.java index 1b80286d..9f99f159 100644 --- a/KdeConnect/src/main/java/org/kde/connect/Device.java +++ b/KdeConnect/src/main/java/org/kde/connect/Device.java @@ -1,12 +1,12 @@ package org.kde.connect; -import android.R; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; +import android.content.res.Resources; import android.os.AsyncTask; import android.os.Handler; import android.os.Looper; @@ -19,6 +19,7 @@ import org.kde.connect.ComputerLinks.BaseComputerLink; import org.kde.connect.Plugins.Plugin; import org.kde.connect.Plugins.PluginFactory; import org.kde.connect.UserInterface.PairActivity; +import org.kde.kdeconnect.R; import java.security.KeyFactory; import java.security.PrivateKey; @@ -109,7 +110,7 @@ public class Device implements BaseComputerLink.PackageReceiver { } public String getName() { - return name != null? name : "unknown device"; //TODO: i18n + return name != null? name : context.getString(R.string.unknown_device); } public String getDeviceId() { @@ -145,16 +146,18 @@ public class Device implements BaseComputerLink.PackageReceiver { public void requestPairing() { + Resources res = context.getResources(); + if (pairStatus == PairStatus.Paired) { - for (PairingCallback cb : pairingCallback) cb.pairingFailed("Device already paired"); //TODO: i18n + for (PairingCallback cb : pairingCallback) cb.pairingFailed(res.getString(R.string.error_already_paired)); return; } if (pairStatus == PairStatus.Requested) { - for (PairingCallback cb : pairingCallback) cb.pairingFailed("Pairing already requested"); //TODO: i18n + for (PairingCallback cb : pairingCallback) cb.pairingFailed(res.getString(R.string.error_already_requested)); return; } if (!isReachable()) { - for (PairingCallback cb : pairingCallback) cb.pairingFailed("Device not reachable"); //TODO: i18n + for (PairingCallback cb : pairingCallback) cb.pairingFailed(res.getString(R.string.error_not_reachable)); return; } @@ -163,7 +166,7 @@ public class Device implements BaseComputerLink.PackageReceiver { boolean success = sendPackage(np); if (!success) { - for (PairingCallback cb : pairingCallback) cb.pairingFailed("Could not send package"); + for (PairingCallback cb : pairingCallback) cb.pairingFailed(res.getString(R.string.error_could_not_send_package)); return; } @@ -171,7 +174,7 @@ public class Device implements BaseComputerLink.PackageReceiver { pairingTimer.schedule(new TimerTask() { @Override public void run() { - for (PairingCallback cb : pairingCallback) cb.pairingFailed("Timed out"); //TODO: i18n + for (PairingCallback cb : pairingCallback) cb.pairingFailed(context.getString(R.string.error_timed_out)); pairStatus = PairStatus.NotPaired; } }, 20*1000); @@ -242,7 +245,7 @@ public class Device implements BaseComputerLink.PackageReceiver { np.set("pair", false); sendPackage(np); - for (PairingCallback cb : pairingCallback) cb.pairingFailed("Canceled by the user"); //TODO: i18n + for (PairingCallback cb : pairingCallback) cb.pairingFailed(context.getString(R.string.error_canceled_by_user)); } @@ -299,7 +302,7 @@ public class Device implements BaseComputerLink.PackageReceiver { if (pairStatus == PairStatus.Requested) { pairStatus = PairStatus.NotPaired; pairingTimer.cancel(); - for (PairingCallback cb : pairingCallback) cb.pairingFailed("Canceled by other peer"); //TODO: i18n + for (PairingCallback cb : pairingCallback) cb.pairingFailed(context.getString(R.string.error_canceled_by_other_peer)); } return; } @@ -310,12 +313,11 @@ public class Device implements BaseComputerLink.PackageReceiver { try { String publicKeyContent = np.getString("publicKey").replace("-----BEGIN PUBLIC KEY-----\n","").replace("-----END PUBLIC KEY-----\n",""); byte[] publicKeyBytes = Base64.decode(publicKeyContent, 0); - Log.e("asdasd","key bytes: " + publicKeyBytes); publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(publicKeyBytes)); } catch(Exception e) { e.printStackTrace(); Log.e("Device","Pairing exception: Received incorrect key"); - for (PairingCallback cb : pairingCallback) cb.pairingFailed("Incorrect key received"); //TODO: i18n + for (PairingCallback cb : pairingCallback) cb.pairingFailed(context.getString(R.string.error_invalid_key)); return; } @@ -349,12 +351,14 @@ public class Device implements BaseComputerLink.PackageReceiver { intent.putExtra("deviceId", deviceId); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT); + Resources res = context.getResources(); + Notification noti = new NotificationCompat.Builder(context) - .setContentTitle("Pairing request from" + getName()) //TODO: i18n - .setContentText("Tap to answer") //TODO: i18n + .setContentTitle(res.getString(R.string.pairing_request_from, getName())) + .setContentText(res.getString(R.string.tap_to_answer)) .setContentIntent(pendingIntent) - .setTicker("Pair requested") //TODO: i18n - .setSmallIcon(R.drawable.ic_menu_help) + .setTicker(res.getString(R.string.pair_requested)) + .setSmallIcon(android.R.drawable.ic_menu_help) .setAutoCancel(true) .setDefaults(Notification.DEFAULT_SOUND) .build(); @@ -382,7 +386,7 @@ public class Device implements BaseComputerLink.PackageReceiver { if (pairStatus == PairStatus.Requested) { pairingTimer.cancel(); - for (PairingCallback cb : pairingCallback) cb.pairingFailed("Canceled by other peer"); //TODO: i18n + for (PairingCallback cb : pairingCallback) cb.pairingFailed(context.getString(R.string.error_canceled_by_other_peer)); } else if (pairStatus == PairStatus.Paired) { SharedPreferences preferences = context.getSharedPreferences("trusted_devices", Context.MODE_PRIVATE); preferences.edit().remove(deviceId).commit(); diff --git a/KdeConnect/src/main/java/org/kde/connect/Plugins/ClibpoardPlugin/ClipboardPlugin.java b/KdeConnect/src/main/java/org/kde/connect/Plugins/ClibpoardPlugin/ClipboardPlugin.java index f21c5c0e..e8dabe17 100644 --- a/KdeConnect/src/main/java/org/kde/connect/Plugins/ClibpoardPlugin/ClipboardPlugin.java +++ b/KdeConnect/src/main/java/org/kde/connect/Plugins/ClibpoardPlugin/ClipboardPlugin.java @@ -106,8 +106,8 @@ public class ClipboardPlugin extends Plugin { @Override public AlertDialog getErrorDialog(Context baseContext) { return new AlertDialog.Builder(baseContext) - .setTitle("ClipBoard Plugin") - .setMessage("This plugin is not compatible with Android 4.3") + .setTitle(R.string.pref_plugin_clipboard) + .setMessage(R.string.plugin_not_available) .setPositiveButton("Ok",new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { diff --git a/KdeConnect/src/main/java/org/kde/connect/Plugins/MprisPlugin/MprisPlugin.java b/KdeConnect/src/main/java/org/kde/connect/Plugins/MprisPlugin/MprisPlugin.java index 4590d184..b082818b 100644 --- a/KdeConnect/src/main/java/org/kde/connect/Plugins/MprisPlugin/MprisPlugin.java +++ b/KdeConnect/src/main/java/org/kde/connect/Plugins/MprisPlugin/MprisPlugin.java @@ -203,7 +203,7 @@ public class MprisPlugin extends Plugin { @Override public Button getInterfaceButton(final Activity activity) { Button b = new Button(activity); - b.setText("Open remote control"); //TODO: i18n + b.setText(R.string.open_mpris_controls); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { diff --git a/KdeConnect/src/main/java/org/kde/connect/Plugins/NotificationsPlugin/NotificationsPlugin.java b/KdeConnect/src/main/java/org/kde/connect/Plugins/NotificationsPlugin/NotificationsPlugin.java index 062a57e6..d0d0866d 100644 --- a/KdeConnect/src/main/java/org/kde/connect/Plugins/NotificationsPlugin/NotificationsPlugin.java +++ b/KdeConnect/src/main/java/org/kde/connect/Plugins/NotificationsPlugin/NotificationsPlugin.java @@ -281,9 +281,9 @@ public class NotificationsPlugin extends Plugin implements NotificationReceiver. if (Build.VERSION.SDK_INT < 18) { return new AlertDialog.Builder(baseContext) - .setTitle("Notifications Plugin") //TODO: i18n - .setMessage("This plugin is not compatible with Android prior 4.3") //TODO: i18n - .setPositiveButton("Ok",new DialogInterface.OnClickListener() { //TODO: i18n + .setTitle(R.string.pref_plugin_notifications) + .setMessage(R.string.plugin_not_available) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { @@ -292,18 +292,18 @@ public class NotificationsPlugin extends Plugin implements NotificationReceiver. .create(); } else { return new AlertDialog.Builder(baseContext) - .setTitle("Notifications Plugin") //TODO: i18n - .setMessage("You need to grant permission to access notifications") //TODO: i18n - .setPositiveButton("Open settings",new DialogInterface.OnClickListener() { + .setTitle(R.string.pref_plugin_notifications) + .setMessage(R.string.no_permissions) + .setPositiveButton(R.string.open_settings, new DialogInterface.OnClickListener() { @Override - public void onClick(DialogInterface dialogInterface, int i) { //TODO: i18n - Intent intent=new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"); + public void onClick(DialogInterface dialogInterface, int i) { + Intent intent = new Intent("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS"); baseContext.startActivity(intent); } }) - .setNegativeButton("Cancel",new DialogInterface.OnClickListener() { + .setNegativeButton(R.string.cancel,new DialogInterface.OnClickListener() { @Override - public void onClick(DialogInterface dialogInterface, int i) { //TODO: i18n + public void onClick(DialogInterface dialogInterface, int i) { //Do nothing } }) diff --git a/KdeConnect/src/main/java/org/kde/connect/Plugins/PingPlugin/PingPlugin.java b/KdeConnect/src/main/java/org/kde/connect/Plugins/PingPlugin/PingPlugin.java index 4edaa5b1..80ab4cd5 100644 --- a/KdeConnect/src/main/java/org/kde/connect/Plugins/PingPlugin/PingPlugin.java +++ b/KdeConnect/src/main/java/org/kde/connect/Plugins/PingPlugin/PingPlugin.java @@ -28,17 +28,17 @@ public class PingPlugin extends Plugin { @Override public String getDisplayName() { - return context.getResources().getString(org.kde.kdeconnect.R.string.pref_plugin_ping); + return context.getResources().getString(R.string.pref_plugin_ping); } @Override public String getDescription() { - return context.getResources().getString(org.kde.kdeconnect.R.string.pref_plugin_ping_desc); + return context.getResources().getString(R.string.pref_plugin_ping_desc); } @Override public Drawable getIcon() { - return context.getResources().getDrawable(org.kde.kdeconnect.R.drawable.icon); + return context.getResources().getDrawable(R.drawable.icon); } @Override @@ -67,7 +67,7 @@ public class PingPlugin extends Plugin { .setContentTitle(device.getName()) .setContentText("Ping!") .setTicker("Ping!") - .setSmallIcon(R.drawable.ic_dialog_alert) + .setSmallIcon(android.R.drawable.ic_dialog_alert) .setAutoCancel(true) .setDefaults(Notification.DEFAULT_SOUND) .build(); @@ -88,7 +88,7 @@ public class PingPlugin extends Plugin { @Override public Button getInterfaceButton(Activity activity) { Button b = new Button(activity); - b.setText("Send ping"); //TODO: i18n + b.setText(R.string.send_ping); b.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { diff --git a/KdeConnect/src/main/java/org/kde/connect/UserInterface/DeviceActivity.java b/KdeConnect/src/main/java/org/kde/connect/UserInterface/DeviceActivity.java index 8567d592..9acd146d 100644 --- a/KdeConnect/src/main/java/org/kde/connect/UserInterface/DeviceActivity.java +++ b/KdeConnect/src/main/java/org/kde/connect/UserInterface/DeviceActivity.java @@ -52,7 +52,7 @@ public class DeviceActivity extends ActionBarActivity { if (!failedPlugins.isEmpty() && errorList.getHeaderViewsCount() == 0) { TextView header = new TextView(DeviceActivity.this); header.setPadding(0,24,0,0); - header.setText("Plugins failed to load (tap for more info):"); //TODO: i18n + header.setText(getResources().getString(R.string.plugins_failed_to_load)); errorList.addHeaderView(header); } errorList.setAdapter(new ArrayAdapter(DeviceActivity.this, android.R.layout.simple_list_item_1, names)); @@ -123,8 +123,7 @@ public class DeviceActivity extends ActionBarActivity { super.onPrepareOptionsMenu(menu); menu.clear(); if (device.isPaired()) { - //TODO: i18n - menu.add("Select plugins").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + menu.add(R.string.device_menu_plugins).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { Intent intent = new Intent(DeviceActivity.this, SettingsActivity.class); @@ -133,8 +132,7 @@ public class DeviceActivity extends ActionBarActivity { return true; } }); - //TODO: i18n - menu.add("Unpair").setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + menu.add(R.string.device_menu_unpair).setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem menuItem) { device.unpair(); diff --git a/KdeConnect/src/main/java/org/kde/connect/UserInterface/MainActivity.java b/KdeConnect/src/main/java/org/kde/connect/UserInterface/MainActivity.java index f11aea3c..1cc8c26e 100644 --- a/KdeConnect/src/main/java/org/kde/connect/UserInterface/MainActivity.java +++ b/KdeConnect/src/main/java/org/kde/connect/UserInterface/MainActivity.java @@ -98,7 +98,9 @@ public class MainActivity extends ActionBarActivity { SectionItem section; - section = new SectionItem("Connected devices"); //TODO: i18n + Resources res = getResources(); + + section = new SectionItem(res.getString(R.string.category_connected_devices)); section.isEmpty = true; items.add(section); for(Device d : devices) { @@ -108,7 +110,7 @@ public class MainActivity extends ActionBarActivity { } } - section = new SectionItem("Not paired devices"); //TODO: i18n + section = new SectionItem(res.getString(R.string.category_not_paired_devices)); section.isEmpty = true; items.add(section); for(Device d : devices) { @@ -118,7 +120,7 @@ public class MainActivity extends ActionBarActivity { } } - section = new SectionItem("Remembered devices"); //TODO: i18n + section = new SectionItem(res.getString(R.string.category_remembered_devices)); section.isEmpty = true; items.add(section); for(Device d : devices) { @@ -128,7 +130,7 @@ public class MainActivity extends ActionBarActivity { } } if (section.isEmpty) { - items.remove(items.size()-1); //Remove this section + items.remove(items.size()-1); //Remove section } runOnUiThread(new Runnable() { diff --git a/KdeConnect/src/main/java/org/kde/connect/UserInterface/PairActivity.java b/KdeConnect/src/main/java/org/kde/connect/UserInterface/PairActivity.java index b9a7b442..d5bfbe49 100644 --- a/KdeConnect/src/main/java/org/kde/connect/UserInterface/PairActivity.java +++ b/KdeConnect/src/main/java/org/kde/connect/UserInterface/PairActivity.java @@ -25,7 +25,7 @@ public class PairActivity extends ActionBarActivity { runOnUiThread(new Runnable() { @Override public void run() { - ((TextView) findViewById(R.id.pair_message)).setText("Pairing requested"); //TODO: i18n + ((TextView) findViewById(R.id.pair_message)).setText(R.string.pair_requested); findViewById(R.id.pair_progress).setVisibility(View.GONE); findViewById(R.id.pair_button).setVisibility(View.GONE); findViewById(R.id.pair_request).setVisibility(View.VISIBLE); diff --git a/KdeConnect/src/main/res/layout/activity_device.xml b/KdeConnect/src/main/res/layout/activity_device.xml index 92d7d69c..0188d17a 100644 --- a/KdeConnect/src/main/res/layout/activity_device.xml +++ b/KdeConnect/src/main/res/layout/activity_device.xml @@ -16,7 +16,6 @@ android:layout_weight="1" /> - + android:layout_gravity="left|center_vertical" + /> -