From 7f8525d65e3328096fe745475afa1d95a33eff29 Mon Sep 17 00:00:00 2001 From: Yuriy Liskov Date: Fri, 17 Jan 2020 05:45:27 +0200 Subject: [PATCH] root settings --- leankeykeyboard/src/main/AndroidManifest.xml | 26 ++++---- .../settings/kblayout/KbLayoutActivity.java | 6 +- .../settings/kblayout/KbLayoutFragment.java | 21 ------- .../settings/settings/KbSettingsActivity.java | 14 +++++ .../settings/settings/KbSettingsFragment.java | 62 +++++++++++++++++++ .../src/main/res/values-ru/strings.xml | 5 ++ .../src/main/res/values/strings.xml | 9 ++- 7 files changed, 105 insertions(+), 38 deletions(-) create mode 100644 leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/settings/settings/KbSettingsActivity.java create mode 100644 leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/settings/settings/KbSettingsFragment.java diff --git a/leankeykeyboard/src/main/AndroidManifest.xml b/leankeykeyboard/src/main/AndroidManifest.xml index 4c85643..c53e7e4 100644 --- a/leankeykeyboard/src/main/AndroidManifest.xml +++ b/leankeykeyboard/src/main/AndroidManifest.xml @@ -1,8 +1,12 @@ - + package="com.liskovsoft.leankeykeyboard"> + + + + tools:targetApi="21" + android:theme="@style/Theme.Leanback"> @@ -34,6 +38,10 @@ + + @@ -54,14 +62,6 @@ - - - - - - - - actions, Bundle savedInstanceState) { KeyboardInfoAdapter adapter = new KeyboardInfoAdapter(getActivity()); initCheckedItems(adapter, actions); - - //GuidedAction action = new GuidedAction.Builder(getActivity()) - // .checkSetId(GuidedAction.CHECKBOX_CHECK_SET_ID) - // .id(ACTION_ID_LAYOUT_LANG) - // .description("String name") - // .title(getString(R.string.user_name)).build(); - //actions.add(action); - // - //action = new GuidedAction.Builder(getActivity()) - // .checkSetId(GuidedAction.CHECKBOX_CHECK_SET_ID) - // .id(ACTION_ID_LAYOUT_LANG) - // .description("String name") - // .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); } private void initCheckedItems(CheckedSource source, List actions) { diff --git a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/settings/settings/KbSettingsActivity.java b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/settings/settings/KbSettingsActivity.java new file mode 100644 index 0000000..a9e7c22 --- /dev/null +++ b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/settings/settings/KbSettingsActivity.java @@ -0,0 +1,14 @@ +package com.liskovsoft.leankeyboard.settings.settings; + +import android.os.Bundle; +import androidx.fragment.app.FragmentActivity; +import androidx.leanback.app.GuidedStepSupportFragment; + +public class KbSettingsActivity extends FragmentActivity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + GuidedStepSupportFragment.addAsRoot(this, new KbSettingsFragment(), android.R.id.content); + } +} diff --git a/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/settings/settings/KbSettingsFragment.java b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/settings/settings/KbSettingsFragment.java new file mode 100644 index 0000000..41f0a17 --- /dev/null +++ b/leankeykeyboard/src/main/java/com/liskovsoft/leankeyboard/settings/settings/KbSettingsFragment.java @@ -0,0 +1,62 @@ +package com.liskovsoft.leankeyboard.settings.settings; + +import android.content.Intent; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.widget.Toast; +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.leankeyboard.settings.kbchooser.GenericLaunchActivity; +import com.liskovsoft.leankeyboard.settings.kblayout.KbLayoutFragment; +import com.liskovsoft.leankeykeyboard.R; + +import java.util.List; + +public class KbSettingsFragment extends GuidedStepSupportFragment { + private static final long ACTION_ID_ACTIVATE_KB = 0; + private static final long ACTION_ID_CHANGE_LAYOUT = 1; + + @NonNull + @Override + public Guidance onCreateGuidance(Bundle savedInstanceState) { + String title = getActivity().getResources().getString(R.string.kb_settings); + String desc = getActivity().getResources().getString(R.string.kb_settings_desc); + Drawable icon = ContextCompat.getDrawable(getActivity(), R.drawable.ic_launcher); + + return new Guidance( + title, + desc, + "", + icon + ); + } + + @Override + public void onCreateActions(@NonNull List actions, Bundle savedInstanceState) { + GuidedAction action = new GuidedAction.Builder(getActivity()) + .id(ACTION_ID_ACTIVATE_KB) + .hasNext(true) + .title(getString(R.string.activate_keyboard)).build(); + actions.add(action); + + action = new GuidedAction.Builder(getActivity()) + .id(ACTION_ID_CHANGE_LAYOUT) + .hasNext(true) + .title(getString(R.string.change_layout)).build(); + actions.add(action); + } + + @Override + public void onGuidedActionClicked(GuidedAction action) { + if (action.getId() == ACTION_ID_ACTIVATE_KB) { + Intent intent = new Intent(getActivity(), GenericLaunchActivity.class); + Toast.makeText(getActivity(), getString(R.string.enable_kb_in_system_prefs, getString(R.string.ime_name)), Toast.LENGTH_LONG).show(); + startActivity(intent); + } else if (action.getId() == ACTION_ID_CHANGE_LAYOUT && getFragmentManager() != null) { + GuidedStepSupportFragment.add(getFragmentManager(), new KbLayoutFragment()); + } + } +} diff --git a/leankeykeyboard/src/main/res/values-ru/strings.xml b/leankeykeyboard/src/main/res/values-ru/strings.xml index 5c30285..89e508a 100644 --- a/leankeykeyboard/src/main/res/values-ru/strings.xml +++ b/leankeykeyboard/src/main/res/values-ru/strings.xml @@ -24,4 +24,9 @@ Чтобы открыть этот диалог, зажмите кнопку \'земной шар\' Раскладка клавиатуры Раскладка + Настройки + Настройки клавиатуры + Активировать клавиатуру + Поменять раскладку + Вам нужно включить %s в Системных настройках diff --git a/leankeykeyboard/src/main/res/values/strings.xml b/leankeykeyboard/src/main/res/values/strings.xml index 3b39a58..1b0e768 100644 --- a/leankeykeyboard/src/main/res/values/strings.xml +++ b/leankeykeyboard/src/main/res/values/strings.xml @@ -1,7 +1,7 @@ - LeanKey Keyboard Pro - LeanKey Keyboard Pro + LeanKey Keyboard Pro + LeanKey Keyboard Pro " .,;:!? ()[]*&@{}/<>_+=|" @@ -31,4 +31,9 @@ Email Keyboard Layout Layout + Settings + Keyboard Settings + Activate Keyboard + Change Layout + You need to enable %s in System Preferences