This commit is contained in:
Yuriy Liskov
2020-01-16 19:03:49 +02:00
parent b2d8ce5aab
commit fffb32df92
46 changed files with 277 additions and 131 deletions

1
.gitignore vendored
View File

@@ -2,6 +2,7 @@ notes.txt
/other
/files
/misc
/releases
tmp/
*_bak*
*_tmp

View File

@@ -3,6 +3,11 @@
buildscript {
repositories {
jcenter()
maven {
url 'https://maven.google.com/'
name 'Google'
}
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
@@ -17,13 +22,19 @@ buildscript {
compileSdkVersion = 28
buildToolsVersion = "28.0.3"
minSdkVersion = 14
targetSdkVersion = 26
appCompatVersion = 'com.android.support:appcompat-v7:28.+'
targetSdkVersion = 28
espressoCoreVersion = 'com.android.support.test.espresso:espresso-core:2.2.2'
junitVersion = 'junit:junit:4.12'
supportVersion = 'com.android.support:support-v4:28.+'
robolectricVersion = 'org.robolectric:robolectric:3.5.1'
crashlyticsVersion = 'com.crashlytics.sdk.android:crashlytics:2.8.0@aar'
// androidx migration:
// https://developer.android.com/jetpack/androidx/migrate
// https://developer.android.com/jetpack/androidx/migrate/artifact-mappings
appCompatXVersion = 'androidx.appcompat:appcompat:1.0.0'
supportXVersion = 'androidx.legacy:legacy-support-v4:1.0.0'
leanbackCompatXVersion = 'androidx.leanback:leanback:1.0.0'
designXVersion = 'com.google.android.material:material:1.0.0'
constraintXVersion = 'androidx.constraintlayout:constraintlayout:1.1.3'
}
}

View File

@@ -1,13 +1,2 @@
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx512m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
android.useAndroidX=true
android.enableJetifier=true

View File

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-all.zip

View File

@@ -1,6 +1,12 @@
apply plugin: 'com.android.application'
android {
// FIX: Default interface methods are only supported starting with Android N (--min-api 24)
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
compileSdkVersion project.properties.compileSdkVersion
buildToolsVersion project.properties.buildToolsVersion
@@ -8,8 +14,8 @@ android {
applicationId "org.liskovsoft.leankeykeyboard.pro"
minSdkVersion project.properties.minSdkVersion
targetSdkVersion project.properties.targetSdkVersion
versionCode 80
versionName "4.3.30"
versionCode 90
versionName "4.4.00"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -40,6 +46,12 @@ android {
disable 'MissingTranslation'
disable 'NewApi'
}
productFlavors {
Vplaystore {
applicationId "org.liskovsoft.androidtv.rukeyboard"
}
}
}
dependencies {
@@ -47,6 +59,9 @@ dependencies {
androidTestCompile(project.properties.espressoCoreVersion, {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile project.properties.appCompatVersion
compile project.properties.appCompatXVersion
compile project.properties.leanbackCompatXVersion
compile project.properties.constraintXVersion
compile project.properties.designXVersion
testCompile project.properties.junitVersion
}

View File

@@ -1,39 +1,93 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.liskovsoft.leankeykeyboard">
<uses-feature android:name="android.software.leanback" android:required="false"/>
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<uses-feature android:name="android.hardware.microphone" android:required="false"/>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.liskovsoft.leankeykeyboard"> <!-- NOTE: use older sdk -->
<uses-sdk tools:overrideLibrary=" android.support.v17.leanback, androidx.leanback"/>
<uses-feature
android:name="android.software.leanback"
android:required="false"/>
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false"/>
<uses-feature
android:name="android.hardware.microphone"
android:required="false"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
<application android:banner="@drawable/banner_app" android:label="@string/ime_name" android:icon="@drawable/ic_launcher" tools:targetApi="21">
<activity android:launchMode="singleTop" android:name="com.liskovsoft.other.GenericLaunchActivity">
<meta-data android:name="package" android:value="com.android.settings"/>
<meta-data android:name="class" android:value="com.android.settings.Settings$LanguageAndInputSettingsActivity"/>
<!-- "Languages & input" on old api -->
<meta-data android:name="package_alt" android:value="com.android.settings"/>
<meta-data android:name="class_alt" android:value="com.android.settings.Settings$InputMethodAndLanguageSettingsActivity"/>
<!-- Last try (if above not found) -->
<meta-data android:name="intent" android:value="android.settings.INPUT_METHOD_SETTINGS"/>
<application
android:banner="@drawable/banner_app"
android:icon="@drawable/ic_launcher"
android:label="@string/ime_name"
tools:targetApi="21" >
<activity
android:name="com.liskovsoft.leankeyboard.settings.kblayout.KbLayoutActivity"
android:theme="@style/Theme.Leanback">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.LAUNCHER"/>
<category android:name="android.intent.category.LEANBACK_LAUNCHER"/>
</intent-filter>
</activity>
<service android:label="@string/ime_service_name"
android:name="com.google.leanback.ime.LeanbackImeService"
android:permission="android.permission.BIND_INPUT_METHOD">
<activity
android:name="com.liskovsoft.leankeyboard.settings.kbchooser.GenericLaunchActivity"
android:launchMode="singleTop">
<meta-data
android:name="package"
android:value="com.android.settings"/>
<meta-data
android:name="class"
android:value="com.android.settings.Settings$LanguageAndInputSettingsActivity"/>
<!-- "Languages & input" on old api -->
<meta-data
android:name="package_alt"
android:value="com.android.settings"/>
<meta-data
android:name="class_alt"
android:value="com.android.settings.Settings$InputMethodAndLanguageSettingsActivity"/>
<!-- Last try (if above not found) -->
<meta-data
android:name="intent"
android:value="android.settings.INPUT_METHOD_SETTINGS"/>
<!-- <intent-filter>-->
<!-- <action android:name="android.intent.action.MAIN"/>-->
<!-- <action android:name="android.intent.action.VIEW"/>-->
<!-- <category android:name="android.intent.category.LAUNCHER"/>-->
<!-- <category android:name="android.intent.category.LEANBACK_LAUNCHER"/>-->
<!-- </intent-filter>-->
</activity>
<service
android:name="com.google.leanback.ime.LeanbackImeService"
android:label="@string/ime_service_name"
android:permission="android.permission.BIND_INPUT_METHOD">
<intent-filter>
<action android:name="android.view.InputMethod"/>
</intent-filter>
<meta-data android:name="android.view.im" android:resource="@xml/method"/>
<meta-data
android:name="android.view.im"
android:resource="@xml/method"/>
</service>
<receiver android:name="com.liskovsoft.other.RestartServiceReceiver" android:exported="true" android:enabled="true">
<receiver
android:name="com.liskovsoft.leankeyboard.other.RestartServiceReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_REMOVED" />
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="android.intent.action.PACKAGE_ADDED"/>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
</application>
</manifest>
</manifest>

View File

@@ -36,9 +36,9 @@ import android.widget.RelativeLayout.LayoutParams;
import com.google.android.leanback.ime.voice.RecognizerView;
import com.google.android.leanback.ime.voice.SpeechLevelSource;
import com.google.leanback.ime.LeanbackImeService;
import com.liskovsoft.other.ChooseKeyboardDialog;
import com.liskovsoft.utils.LeanKeyPreferences;
import com.liskovsoft.keyboardaddons.KeyboardManager;
import com.liskovsoft.leankeyboard.settings.kblayout.KbLayoutActivity;
import com.liskovsoft.leankeyboard.utils.LeanKeyPreferences;
import com.liskovsoft.leankeyboard.addons.KeyboardManager;
import com.liskovsoft.leankeykeyboard.R;
import java.util.ArrayList;
@@ -878,7 +878,8 @@ public class LeanbackKeyboardContainer {
return true;
} else if (keyCode == LeanbackKeyboardView.KEYCODE_LANG_TOGGLE) {
// NOTE: normal constructor cannot be applied here
new ChooseKeyboardDialog(mContext, mMainKeyboardView).run();
//new ChooseKeyboardDialog(mContext, mMainKeyboardView).run();
showKbLayoutSettings();
return true;
} else {
if (mCurrKeyInfo.type == KeyFocus.TYPE_MAIN) {
@@ -1185,7 +1186,8 @@ public class LeanbackKeyboardContainer {
prefs.setRunOnce(true);
// NOTE: normal constructor cannot be applied here
new ChooseKeyboardDialog(mContext, mMainKeyboardView).run();
//new ChooseKeyboardDialog(mContext, mMainKeyboardView).run();
showKbLayoutSettings();
}
public interface DismissListener {
@@ -1408,4 +1410,10 @@ public class LeanbackKeyboardContainer {
public interface VoiceListener {
void onVoiceResult(String result);
}
private void showKbLayoutSettings() {
Intent intent = new Intent(mContext, KbLayoutActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
}

View File

@@ -4,7 +4,6 @@ import android.graphics.PointF;
import android.inputmethodservice.InputMethodService;
import android.inputmethodservice.Keyboard.Key;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.text.InputType;
import android.util.Log;
import android.view.KeyEvent;
@@ -16,6 +15,7 @@ import android.view.View.OnTouchListener;
import android.view.inputmethod.EditorInfo;
import android.widget.Button;
import android.widget.RelativeLayout;
import androidx.annotation.NonNull;
import com.google.android.leanback.ime.LeanbackKeyboardContainer.KeyFocus;
import com.google.android.pano.util.TouchNavSpaceTracker;
import com.liskovsoft.leankeykeyboard.R;

View File

@@ -19,7 +19,7 @@ import com.google.android.leanback.ime.LeanbackKeyboardController.InputListener;
import com.google.android.leanback.ime.LeanbackKeyboardView;
import com.google.android.leanback.ime.LeanbackSuggestionsFactory;
import com.google.android.leanback.ime.LeanbackUtils;
import com.liskovsoft.utils.LangUpdater;
import com.liskovsoft.leankeyboard.utils.LangUpdater;
public class LeanbackImeService extends InputMethodService {
private static final boolean DEBUG = false;

View File

@@ -1,7 +1,7 @@
package com.liskovsoft.keyboardaddons;
package com.liskovsoft.leankeyboard.addons;
import android.inputmethodservice.Keyboard;
import android.support.annotation.Nullable;
import androidx.annotation.Nullable;
public interface KeyboardBuilder {
@Nullable

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.keyboardaddons;
package com.liskovsoft.leankeyboard.addons;
import android.content.Context;

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.keyboardaddons;
package com.liskovsoft.leankeyboard.addons;
public interface KeyboardInfo {
boolean isEnabled();

View File

@@ -1,8 +1,8 @@
package com.liskovsoft.keyboardaddons;
package com.liskovsoft.leankeyboard.addons;
import android.content.Context;
import android.inputmethodservice.Keyboard;
import com.liskovsoft.keyboardaddons.reskbdfactory.ResKeyboardFactory;
import com.liskovsoft.leankeyboard.addons.reskbdfactory.ResKeyboardFactory;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,7 +1,7 @@
package com.liskovsoft.keyboardaddons;
package com.liskovsoft.leankeyboard.addons;
import android.content.Context;
import com.liskovsoft.utils.LeanKeyPreferences;
import com.liskovsoft.leankeyboard.utils.LeanKeyPreferences;
public class KeyboardStateManager {
private final Context mContext;

View File

@@ -14,11 +14,11 @@
* limitations under the License.
*/
package com.liskovsoft.keyboardaddons.apkkbdfactory.addons;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.addons;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public interface AddOn {
interface AddOnResourceMapping {

View File

@@ -14,16 +14,16 @@
* limitations under the License.
*/
package com.liskovsoft.keyboardaddons.apkkbdfactory.addons;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.addons;
import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.util.SparseArrayCompat;
import android.util.SparseIntArray;
import com.liskovsoft.keyboardaddons.apkkbdfactory.utils.Logger;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.collection.SparseArrayCompat;
import com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils.Logger;
import java.lang.ref.WeakReference;
import java.util.Arrays;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.liskovsoft.keyboardaddons.apkkbdfactory.addons;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.addons;
import android.content.Context;
import android.content.Intent;
@@ -27,7 +27,7 @@ import android.util.AttributeSet;
import android.util.Xml;
//import com.liskovsoft.keyboardaddons.apklangfactory.AnySoftKeyboard;
import com.liskovsoft.keyboardaddons.apkkbdfactory.utils.Logger;
import com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils.Logger;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

View File

@@ -1,11 +1,11 @@
package com.liskovsoft.keyboardaddons.apkkbdfactory.addons;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.addons;
import android.content.Context;
import android.content.res.Resources;
import android.support.annotation.NonNull;
import android.util.SparseIntArray;
import com.liskovsoft.keyboardaddons.apkkbdfactory.utils.Logger;
import androidx.annotation.NonNull;
import com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils.Logger;
import java.util.ArrayList;
import java.util.List;

View File

@@ -14,14 +14,14 @@
* limitations under the License.
*/
package com.liskovsoft.keyboardaddons.apkkbdfactory.keyboards;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.keyboards;
import android.content.Context;
import android.support.annotation.Nullable;
import com.liskovsoft.keyboardaddons.KeyboardBuilder;
import com.liskovsoft.keyboardaddons.apkkbdfactory.addons.AddOn;
import com.liskovsoft.keyboardaddons.apkkbdfactory.addons.AddOnImpl;
import androidx.annotation.Nullable;
import com.liskovsoft.leankeyboard.addons.KeyboardBuilder;
import com.liskovsoft.leankeyboard.addons.apkkbdfactory.addons.AddOn;
import com.liskovsoft.leankeyboard.addons.apkkbdfactory.addons.AddOnImpl;
public class ApkKeyboardAddOnAndBuilder extends AddOnImpl implements KeyboardBuilder {

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.liskovsoft.keyboardaddons.apkkbdfactory.keyboards;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.keyboards;
import android.content.Context;
import android.content.SharedPreferences;
@@ -23,11 +23,11 @@ import android.preference.PreferenceManager;
import android.text.TextUtils;
import android.util.AttributeSet;
import com.liskovsoft.keyboardaddons.KeyboardBuilder;
import com.liskovsoft.keyboardaddons.KeyboardFactory;
import com.liskovsoft.keyboardaddons.apkkbdfactory.addons.AddOn;
import com.liskovsoft.keyboardaddons.apkkbdfactory.addons.AddOnsFactory;
import com.liskovsoft.keyboardaddons.apkkbdfactory.utils.Logger;
import com.liskovsoft.leankeyboard.addons.KeyboardBuilder;
import com.liskovsoft.leankeyboard.addons.KeyboardFactory;
import com.liskovsoft.leankeyboard.addons.apkkbdfactory.addons.AddOn;
import com.liskovsoft.leankeyboard.addons.apkkbdfactory.addons.AddOnsFactory;
import com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils.Logger;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.keyboardaddons.apkkbdfactory.utils;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils;
public class BuildConfig {
public final static boolean TESTING_BUILD = true;

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.keyboardaddons.apkkbdfactory.utils;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils;
import android.os.Build;
import android.util.Log;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.liskovsoft.keyboardaddons.apkkbdfactory.utils;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils;
public interface LogProvider {

View File

@@ -14,9 +14,10 @@
* limitations under the License.
*/
package com.liskovsoft.keyboardaddons.apkkbdfactory.utils;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.ArrayList;
import java.util.Locale;

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.keyboardaddons.apkkbdfactory.utils;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils;
/**
* Doesn't do anything. For release.

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package com.liskovsoft.keyboardaddons.apkkbdfactory.utils;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils;
import android.util.Xml;

View File

@@ -15,7 +15,7 @@
* limitations under the License.
*/
package com.liskovsoft.keyboardaddons.apkkbdfactory.utils;
package com.liskovsoft.leankeyboard.addons.apkkbdfactory.utils;
import java.io.File;
import java.io.FileWriter;

View File

@@ -1,8 +1,8 @@
package com.liskovsoft.keyboardaddons.reskbdfactory;
package com.liskovsoft.leankeyboard.addons.reskbdfactory;
import android.inputmethodservice.Keyboard;
import android.support.annotation.Nullable;
import com.liskovsoft.keyboardaddons.KeyboardBuilder;
import androidx.annotation.Nullable;
import com.liskovsoft.leankeyboard.addons.KeyboardBuilder;
class ResKeyboardBuilder implements KeyboardBuilder {
@Nullable

View File

@@ -1,12 +1,11 @@
package com.liskovsoft.keyboardaddons.reskbdfactory;
package com.liskovsoft.leankeyboard.addons.reskbdfactory;
import android.content.Context;
import android.content.res.Resources;
import android.inputmethodservice.Keyboard;
import android.support.annotation.Nullable;
import com.liskovsoft.keyboardaddons.KeyboardBuilder;
import com.liskovsoft.keyboardaddons.KeyboardFactory;
import com.liskovsoft.keyboardaddons.KeyboardInfo;
import androidx.annotation.Nullable;
import com.liskovsoft.leankeyboard.addons.KeyboardBuilder;
import com.liskovsoft.leankeyboard.addons.KeyboardFactory;
import com.liskovsoft.leankeyboard.addons.KeyboardInfo;
import java.util.ArrayList;
import java.util.List;

View File

@@ -1,9 +1,9 @@
package com.liskovsoft.keyboardaddons.reskbdfactory;
package com.liskovsoft.leankeyboard.addons.reskbdfactory;
import android.content.Context;
import android.content.SharedPreferences;
import android.preference.PreferenceManager;
import com.liskovsoft.keyboardaddons.KeyboardInfo;
import com.liskovsoft.leankeyboard.addons.KeyboardInfo;
import com.liskovsoft.leankeykeyboard.R;
import java.util.ArrayList;

View File

@@ -1,6 +1,6 @@
package com.liskovsoft.keyboardaddons.reskbdfactory;
package com.liskovsoft.leankeyboard.addons.reskbdfactory;
import com.liskovsoft.keyboardaddons.KeyboardInfo;
import com.liskovsoft.leankeyboard.addons.KeyboardInfo;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.other;
package com.liskovsoft.leankeyboard.other;
import android.app.*;
import android.content.*;
import android.content.res.*;

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.other;
package com.liskovsoft.leankeyboard.settings.kbchooser;
import android.annotation.SuppressLint;
import android.content.ActivityNotFoundException;

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.other;
package com.liskovsoft.leankeyboard.settings.kblayout;
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
@@ -15,8 +15,8 @@ import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.CheckedTextView;
import com.liskovsoft.keyboardaddons.KeyboardInfo;
import com.liskovsoft.keyboardaddons.reskbdfactory.ResKeyboardInfo;
import com.liskovsoft.leankeyboard.addons.KeyboardInfo;
import com.liskovsoft.leankeyboard.addons.reskbdfactory.ResKeyboardInfo;
import com.liskovsoft.leankeykeyboard.R;
import java.util.ArrayList;

View File

@@ -0,0 +1,14 @@
package com.liskovsoft.leankeyboard.settings.kblayout;
import android.os.Bundle;
import androidx.fragment.app.FragmentActivity;
import com.liskovsoft.leankeykeyboard.R;
public class KbLayoutActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_kblayout);
}
}

View File

@@ -0,0 +1,45 @@
package com.liskovsoft.leankeyboard.settings.kblayout;
import android.os.Bundle;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.leanback.app.GuidedStepSupportFragment;
import androidx.leanback.widget.GuidanceStylist.Guidance;
import androidx.leanback.widget.GuidedAction;
import com.liskovsoft.leankeykeyboard.R;
import java.util.List;
public class KbLayoutFragment extends GuidedStepSupportFragment {
private static final long ACTION_ID_NAME = 0;
private static final long ACTION_ID_EMAIL = 1;
@NonNull
@Override
public Guidance onCreateGuidance(Bundle savedInstanceState) {
Guidance guidance = new Guidance("User Profile", "Use Name",
"", ContextCompat.getDrawable(getActivity(), R.drawable.ic_launcher));
return guidance;
}
@Override
public void onCreateActions(@NonNull List<GuidedAction> actions, Bundle savedInstanceState) {
GuidedAction action = new GuidedAction.Builder(getActivity()) .id(ACTION_ID_NAME).description("String name").descriptionEditable(true)
.title(getString(R.string.user_name)).build();
actions.add(action);
action = new GuidedAction.Builder(getActivity()).id(ACTION_ID_EMAIL).description("String email").descriptionEditable(true).title(getString(R.string.email_id)).build();
actions.add(action);
}
@Override
public void onGuidedActionClicked(GuidedAction action) {
if (ACTION_ID_NAME == action.getId()) {
Log.d("editedText", action.getDescription().toString());
} else if (ACTION_ID_EMAIL == action.getId()) {
Log.d("editedText", action.getDescription().toString());
}
}
}

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.utils;
package com.liskovsoft.leankeyboard.utils;
import android.content.Context;
import android.content.Intent;

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.utils;
package com.liskovsoft.leankeyboard.utils;
import android.content.Context;
import android.content.Intent;

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.utils;
package com.liskovsoft.leankeyboard.utils;
import android.content.Context;
import android.content.SharedPreferences;

View File

@@ -1,4 +1,4 @@
package com.liskovsoft.utils;
package com.liskovsoft.leankeyboard.utils;
import android.content.Context;
import android.os.Build;

View File

@@ -1,19 +1,3 @@
/*
* Copyright (C) 2008 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Useful links:
// https://android.googlesource.com/platform/frameworks/base/+/de47f1c358c8186ff3e14b887d5869f69b9a9d6c/core/java/com/android/internal/widget/DialogTitle.java
// com.android.internal.widget.DialogTitle: https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/layout/alert_dialog.xml
@@ -21,20 +5,21 @@
// <declare-styleable name="TextAppearance">: https://github.com/aosp-mirror/platform_frameworks_base/blob/master/core/res/res/values/attrs.xml
package com.liskovsoft.other.widgets;
package com.liskovsoft.leankeyboard.widgets;
import android.content.Context;
import android.content.res.TypedArray;
import android.text.Layout;
import android.util.AttributeSet;
import android.util.TypedValue;
import androidx.appcompat.widget.AppCompatTextView;
import com.liskovsoft.leankeykeyboard.R;
/**
* Used by dialogs to change the font size and number of lines to try to fit
* the text to the available space.
*/
public class DialogTitle extends android.support.v7.widget.AppCompatTextView {
public class DialogTitle extends AppCompatTextView {
public DialogTitle(Context context, AttributeSet attrs,
int defStyle) {

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.liskovsoft.leankeyboard.settings.kblayout.KbLayoutActivity">
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Fix layout errors: https://developer.android.com/training/tv/start/layouts -->
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:name="com.liskovsoft.leankeyboard.settings.kblayout.KbLayoutFragment"
android:id="@+id/kb_layout_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:layout_gravity="center" android:paddingLeft="@dimen/candidate_padding_horizontal" android:paddingRight="@dimen/candidate_padding_horizontal" android:focusable="true" android:clipChildren="false" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/candidate_margin_horizontal" android:layout_marginRight="@dimen/candidate_margin_horizontal"
xmlns:android="http://schemas.android.com/apk/res/android">
<Button android:textSize="@dimen/candidate_font_size" android:textColor="@color/candidate_font_color" android:ellipsize="none" android:gravity="center" android:id="@id/text" android:background="@android:color/transparent" android:clipChildren="false" android:layout_width="wrap_content" android:layout_height="@dimen/candidate_height" android:singleLine="true" android:textAllCaps="false" android:fontFamily="sans-serif-condensed" />
<Button android:textSize="@dimen/candidate_font_size" android:textColor="@color/candidate_font_color" android:ellipsize="none" android:gravity="center" android:id="@+id/text" android:background="@android:color/transparent" android:clipChildren="false" android:layout_width="wrap_content" android:layout_height="@dimen/candidate_height" android:singleLine="true" android:textAllCaps="false" android:fontFamily="sans-serif-condensed" />
</RelativeLayout>

View File

@@ -3,7 +3,8 @@
<string name="ime_name">LeanKey Keyboard Pro</string>
<string name="ime_service_name">LeanKey Keyboard Pro</string>
<string name="word_separators">" .,;:!?
()[]*&amp;@{}/&lt;>_+=|"</string>
()[]*&amp;@{}/&lt;>_+=|"
</string>
<string name="label_go_key">Go</string>
<string name="label_next_key">Next</string>
<string name="label_send_key">Send</string>
@@ -26,4 +27,6 @@
<string name="keyboard_password_character_no_headset">Dot.</string>
<string name="language_dialog_title">Select additional layouts</string>
<string name="language_dialog_subtitle">To open dialog next time, long press on \'world\' button</string>
<string name="user_name">User Name</string>
<string name="email_id">Email</string>
</resources>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="@style/Theme.Leanback"/>
</resources>