diff options
Diffstat (limited to 'src/main/java/com/anysoftkeyboard/ui/settings/MainSettingsActivity.java')
| -rw-r--r-- | src/main/java/com/anysoftkeyboard/ui/settings/MainSettingsActivity.java | 202 |
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); + } +} |
