aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/anysoftkeyboard/ui/settings/MainSettingsActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/anysoftkeyboard/ui/settings/MainSettingsActivity.java')
-rw-r--r--src/main/java/com/anysoftkeyboard/ui/settings/MainSettingsActivity.java202
1 files changed, 202 insertions, 0 deletions
diff --git a/src/main/java/com/anysoftkeyboard/ui/settings/MainSettingsActivity.java b/src/main/java/com/anysoftkeyboard/ui/settings/MainSettingsActivity.java
new file mode 100644
index 000000000..19821fe65
--- /dev/null
+++ b/src/main/java/com/anysoftkeyboard/ui/settings/MainSettingsActivity.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright (c) 2013 Menny Even-Danan
+ *
+ * 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.
+ */
+
+package com.anysoftkeyboard.ui.settings;
+
+import android.content.SharedPreferences;
+import android.content.res.Configuration;
+import android.os.Bundle;
+import android.support.v4.app.ActionBarDrawerToggle;
+import android.support.v4.app.ActivityCompat;
+import android.support.v4.app.Fragment;
+import android.support.v4.widget.DrawerLayout;
+import android.view.Gravity;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.TextView;
+
+import com.anysoftkeyboard.keyboards.KeyboardFactory;
+import com.anysoftkeyboard.theme.KeyboardTheme;
+import com.anysoftkeyboard.theme.KeyboardThemeFactory;
+import com.menny.android.anysoftkeyboard.AnyApplication;
+import com.menny.android.anysoftkeyboard.R;
+
+import net.evendanan.pushingpixels.FragmentChauffeurActivity;
+
+public class MainSettingsActivity extends FragmentChauffeurActivity {
+
+ private static final String TAG = "ASK_MAIN";
+
+ private DrawerLayout mDrawerRootLayout;
+ private ActionBarDrawerToggle mDrawerToggle;
+
+ private CharSequence mTitle;
+ private CharSequence mDrawerTitle;
+ private SharedPreferences.OnSharedPreferenceChangeListener menuExtraUpdaterOnConfigChange = new SharedPreferences.OnSharedPreferenceChangeListener() {
+ @Override
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+ updateMenuExtraData();
+ }
+ };
+
+ @Override
+ protected void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ setContentView(R.layout.main_ui);
+
+ mTitle = mDrawerTitle = getTitle();
+
+ mDrawerRootLayout = (DrawerLayout) findViewById(R.id.main_root_layout);
+ mDrawerRootLayout.setDrawerShadow(R.drawable.drawer_shadow, Gravity.LEFT);
+ mDrawerToggle = new ActionBarDrawerToggle(
+ this, /* host Activity */
+ mDrawerRootLayout, /* DrawerLayout object */
+ R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */
+ R.string.drawer_open, /* "open drawer" description */
+ R.string.drawer_close /* "close drawer" description */
+ ) {
+
+ /** Called when a drawer has settled in a completely closed state. */
+ public void onDrawerClosed(View view) {
+ getSupportActionBar().setTitle(mTitle);
+ ActivityCompat.invalidateOptionsMenu(MainSettingsActivity.this);// creates call to onPrepareOptionsMenu()
+ }
+
+ /** Called when a drawer has settled in a completely open state. */
+ public void onDrawerOpened(View drawerView) {
+ getSupportActionBar().setTitle(mDrawerTitle);
+ ActivityCompat.invalidateOptionsMenu(MainSettingsActivity.this);// creates call to onPrepareOptionsMenu()
+ }
+ };
+
+ // Set the drawer toggle as the DrawerListener
+ mDrawerRootLayout.setDrawerListener(mDrawerToggle);
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ getSupportActionBar().setHomeButtonEnabled(true);
+
+ AnyApplication.getConfig().addChangedListener(menuExtraUpdaterOnConfigChange);
+ }
+
+ @Override
+ protected void onPostCreate(Bundle savedInstanceState) {
+ super.onPostCreate(savedInstanceState);
+ // Sync the toggle state after onRestoreInstanceState has occurred.
+ mDrawerToggle.syncState();
+ }
+
+ @Override
+ protected Fragment createRootFragmentInstance() {
+ return new MainFragment();
+ }
+
+ @Override
+ protected int getFragmentRootUiElementId() {
+ return R.id.main_ui_content;
+ }
+
+ @Override
+ protected void onStart() {
+ super.onStart();
+ //updating menu's data
+ updateMenuExtraData();
+ }
+
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ AnyApplication.getConfig().removeChangedListener(menuExtraUpdaterOnConfigChange);
+ }
+
+ private void updateMenuExtraData() {
+ TextView keyboardsData = (TextView)findViewById(R.id.keyboards_group_extra_data);
+ final int all = KeyboardFactory.getAllAvailableKeyboards(getApplicationContext()).size();
+ final int enabled = KeyboardFactory.getEnabledKeyboards(getApplicationContext()).size();
+ keyboardsData.setText(getString(R.string.keyboards_group_extra_template, enabled, all));
+
+ TextView themeData = (TextView)findViewById(R.id.theme_extra_data);
+ KeyboardTheme theme = KeyboardThemeFactory.getCurrentKeyboardTheme(getApplicationContext());
+ if (theme == null)
+ theme = KeyboardThemeFactory.getCurrentKeyboardTheme(getApplicationContext());
+ themeData.setText(getString(R.string.selected_add_on_summary, theme.getName()));
+ }
+
+ @Override
+ public void onConfigurationChanged(Configuration newConfig) {
+ super.onConfigurationChanged(newConfig);
+ mDrawerToggle.onConfigurationChanged(newConfig);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // Pass the event to ActionBarDrawerToggle, if it returns
+ // true, then it has handled the app icon touch event
+ if (mDrawerToggle.onOptionsItemSelected(item)) {
+ return true;
+ }
+ // Handle your other action bar items...
+
+ return super.onOptionsItemSelected(item);
+ }
+
+ @Override
+ public void setTitle(CharSequence title) {
+ mTitle = title;
+ getSupportActionBar().setTitle(mTitle);
+ }
+
+ //side menu navigation methods
+
+ public void onNavigateToAboutClicked(View v) {
+ mDrawerRootLayout.closeDrawers();
+ returnToRootFragment();
+ }
+
+ public void onNavigateToKeyboardAddonSettings(View v) {
+ mDrawerRootLayout.closeDrawers();
+ addFragmentToUi(new KeyboardAddOnSettingsFragment(), FragmentUiContext.RootFragment);
+ }
+
+ public void onNavigateToDictionarySettings(View v) {
+ mDrawerRootLayout.closeDrawers();
+ addFragmentToUi(new DictionariesFragment(), FragmentUiContext.RootFragment);
+ }
+
+ public void onNavigateToLanguageSettings(View v) {
+ mDrawerRootLayout.closeDrawers();
+ addFragmentToUi(new AdditionalLanguageSettingsFragment(), FragmentUiContext.RootFragment);
+
+ }
+
+ public void onNavigateToKeyboardThemeSettings(View v) {
+ mDrawerRootLayout.closeDrawers();
+ addFragmentToUi(new KeyboardThemeSelectorFragment(), FragmentUiContext.RootFragment);
+ }
+
+ public void onNavigateToEffectsSettings(View v) {
+ mDrawerRootLayout.closeDrawers();
+ //TODO: start additional language settings fragment
+ }
+
+ public void onNavigateToGestureSettings(View v) {
+ mDrawerRootLayout.closeDrawers();
+ //TODO: start additional language settings fragment
+ }
+
+ public void onNavigateToUserInterfaceSettings(View v) {
+ mDrawerRootLayout.closeDrawers();
+ addFragmentToUi(new AdditionalUiSettingsFragment(), FragmentUiContext.RootFragment);
+ }
+}