mirror of
https://github.com/yuliskov/LeanKeyboard.git
synced 2026-05-18 21:40:26 -04:00
initial commit
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
package com.liskovsoft.inputchooser;
|
||||
import android.app.*;
|
||||
import android.content.*;
|
||||
import android.content.res.*;
|
||||
import android.net.*;
|
||||
import android.util.*;
|
||||
import android.view.inputmethod.*;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class RestartServiceReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
sendMessageToService(context);
|
||||
|
||||
}
|
||||
|
||||
private void sendMessageToService(Context context) {
|
||||
Log.e("RestartServiceReceiver", "Sending message to the service");
|
||||
Intent intent = new Intent();
|
||||
intent.setComponent(new ComponentName(getPackageName(context), "com.google.leanback.ime.LeanbackImeService"));
|
||||
intent.putExtra("restart", true);
|
||||
context.startService(intent);
|
||||
}
|
||||
|
||||
private void onStartCommand(Intent intent) {
|
||||
if (intent.getBooleanExtra("restart", false)) {
|
||||
System.out.println("Restarting service");
|
||||
}
|
||||
}
|
||||
|
||||
private void killThisPackageProcess(Context context) {
|
||||
Log.e("RestartServiceReceiver", "Attempting to kill org.liskovsoft.androidtv.rukeyboard process");
|
||||
ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
|
||||
activityManager.killBackgroundProcesses(getPackageName(context));
|
||||
}
|
||||
|
||||
private void restartService(Context context) {
|
||||
// START YOUR SERVICE HERE
|
||||
Log.e("RestartServiceReceiver", "Restarting Service");
|
||||
//final Class<?> serviceClass = classForName("com.google.leanback.ime.LeanbackImeService");
|
||||
//Intent serviceIntent = new Intent(context.getApplicationContext(), serviceClass);
|
||||
Intent serviceIntent = new Intent();
|
||||
serviceIntent.setComponent(new ComponentName(getPackageName(context), "com.google.leanback.ime.LeanbackImeService"));
|
||||
context.stopService(serviceIntent);
|
||||
context.startService(serviceIntent);
|
||||
}
|
||||
|
||||
private Class<?> classForName(String clazz) {
|
||||
Class<?> serviceClass;
|
||||
try {
|
||||
serviceClass = Class.forName(clazz);
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return serviceClass;
|
||||
}
|
||||
|
||||
private void switchLocale(Context ctx) {
|
||||
Log.e("RestartServiceReceiver", "Trying to switch locale back and forward");
|
||||
Locale savedLocale = Locale.getDefault();
|
||||
trySwitchLocale(ctx, new Locale("ru"));
|
||||
trySwitchLocale(ctx, savedLocale);
|
||||
}
|
||||
|
||||
private void trySwitchLocale(Context ctx, Locale locale) {
|
||||
Locale.setDefault(locale);
|
||||
Configuration config = ctx.getResources().getConfiguration();
|
||||
config.locale = locale;
|
||||
ctx.getResources().updateConfiguration(config,
|
||||
ctx.getResources().getDisplayMetrics());
|
||||
}
|
||||
|
||||
private String getPackageName(Context ctx) {
|
||||
return ctx.getPackageName();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user