Android Open Source - advanced-tourist-map Edit Preferences






From Project

Back to project page advanced-tourist-map.

License

The source code is released under:

GNU General Public License

If you think the Android project advanced-tourist-map listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright 2010, 2011 mapsforge.org// ww  w. j  av  a 2  s  .co m
 *
 * This program is free software: you can redistribute it and/or modify it under the
 * terms of the GNU Lesser General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */
package org.muxe.advancedtouristmap;

import java.io.File;
import java.io.FileFilter;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
import android.preference.PreferenceManager;
import android.view.WindowManager;
import android.widget.Toast;

/**
 * Activity to edit the application preferences.
 */
public class EditPreferences extends PreferenceActivity {

  private static final int SELECT_MAP_FILE = 0;

  SharedPreferences appPreferences;
  Preference fileChooser;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    final Activity thisActivity = this;
    this.appPreferences = PreferenceManager.getDefaultSharedPreferences(this);

    addPreferencesFromResource(R.xml.preferences);

    Preference resetHelpTopics = findPreference("resetHelpTopics");
    resetHelpTopics.setOnPreferenceClickListener(new OnPreferenceClickListener() {
      @Override
      public boolean onPreferenceClick(Preference preference) {
        Editor editor = getSharedPreferences(
            AdvancedTouristMapApplication.HELP_PREFERENCES_NAME, MODE_PRIVATE)
            .edit();
        editor.clear();
        editor.commit();
        Toast.makeText(EditPreferences.this, R.string.preferences_help_toast,
            Toast.LENGTH_SHORT).show();
        return false;
      }
    });

    this.fileChooser = findPreference("baseBundlePath");
    this.fileChooser.setOnPreferenceClickListener(new OnPreferenceClickListener() {
      @Override
      public boolean onPreferenceClick(Preference preference) {

        // set the FileDisplayFilter
        FilePicker.setFileDisplayFilter(new FileFilter() {
          @Override
          public boolean accept(File file) {
            // accept only readable files
            if (file.canRead()) {
              if (file.isDirectory()) {
                // accept all directories
                return true;
              } else if (file.isFile() && file.getName().endsWith(".xml")) {
                // accept all files with a ".map" extension
                return true;
              }
            }
            return false;
          }
        });

        // start the FilePicker (in directory return mode)
        startActivityForResult(
            new Intent(thisActivity, FilePicker.class).putExtra("directory", true),
            SELECT_MAP_FILE);

        return true;
      }
    });
  }

  @Override
  protected void onResume() {
    super.onResume();
    // check if the full screen mode should be activated
    if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("fullscreen", false)) {
      getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
      getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    } else {
      getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
      getWindow().addFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    }

    this.fileChooser.setSummary(this.appPreferences.getString("baseBundlePath",
        getString(R.string.preferences_no_path_selected)));
  }

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == SELECT_MAP_FILE && data != null) {
      if (resultCode == RESULT_OK) {
        String filename = data.getStringExtra("selectedFile");
        File file = new File(filename);
        if (file.isFile()) {
          filename = file.getParent();
        }
        Editor editor = this.appPreferences.edit();

        editor.putString("baseBundlePath", filename);
        editor.remove("bundlePath");
        editor.commit();
        // unset in Application
        // TODO: consider using OnSharedPreferenceChangeListener:
        // http://developer.android.com/reference/android/content/SharedPreferences.OnSharedPreferenceChangeListener.html
        AdvancedTouristMapApplication amvapp = (AdvancedTouristMapApplication) getApplication();
        amvapp.resetBaseBundlePath();
        // amvapp.resetCurrentMapBundle();
        this.fileChooser.setSummary(filename);
      }

    }

  }

}




Java Source Code List

org.mapsforge.geocoding.Unchecked.java
org.mapsforge.geocoding.widget.CityCompletionAdapter.java
org.mapsforge.geocoding.widget.PlaceCompletionAdapter.java
org.mapsforge.geocoding.widget.RoadCompletionAdapter.java
org.mapsforge.geocoding.widget.RoadListAdapter.java
org.mapsforge.geocoding.widget.SqliteCompletionAdapter.java
org.mapsforge.geocoding.widget.State.java
org.muxe.advancedtouristmap.AdvancedTouristMapApplication.java
org.muxe.advancedtouristmap.AdvancedTouristMap.java
org.muxe.advancedtouristmap.BaseActivity.java
org.muxe.advancedtouristmap.CacheSizePreference.java
org.muxe.advancedtouristmap.EditPreferences.java
org.muxe.advancedtouristmap.FilePickerIconAdapter.java
org.muxe.advancedtouristmap.FilePicker.java
org.muxe.advancedtouristmap.InfoView.java
org.muxe.advancedtouristmap.LocationPicker.java
org.muxe.advancedtouristmap.MoveSpeedPreference.java
org.muxe.advancedtouristmap.PositionInfo.java
org.muxe.advancedtouristmap.Search.java
org.muxe.advancedtouristmap.SeekBarPreference.java
org.muxe.advancedtouristmap.Utility.java
org.muxe.advancedtouristmap.overlay.GenericOverlayItem.java
org.muxe.advancedtouristmap.overlay.GenericOverlay.java
org.muxe.advancedtouristmap.overlay.PoiOverlayItem.java
org.muxe.advancedtouristmap.overlay.PositionOverlayItem.java
org.muxe.advancedtouristmap.overlay.WikiOverlayItem.java
org.muxe.advancedtouristmap.poi.PoiBrowserActivity.java
org.muxe.advancedtouristmap.poi.PoiOrCategory.java
org.muxe.advancedtouristmap.routing.AngleCalc.java
org.muxe.advancedtouristmap.routing.DecisionOverlay.java
org.muxe.advancedtouristmap.routing.DecisionPoint.java
org.muxe.advancedtouristmap.routing.RouteCalculator.java
org.muxe.advancedtouristmap.routing.RouteList.java
org.muxe.advancedtouristmap.routing.Route.java
org.muxe.advancedtouristmap.sourcefiles.AddressFile.java
org.muxe.advancedtouristmap.sourcefiles.FileManagerActivity.java
org.muxe.advancedtouristmap.sourcefiles.FileManager.java
org.muxe.advancedtouristmap.sourcefiles.MapBundle.java
org.muxe.advancedtouristmap.sourcefiles.MapFile.java
org.muxe.advancedtouristmap.sourcefiles.PoiFile.java
org.muxe.advancedtouristmap.sourcefiles.RoutingFile.java
org.muxe.advancedtouristmap.sourcefiles.SourceFile.java
org.muxe.advancedtouristmap.wikipedia.AbstractWikiArticle.java
org.muxe.advancedtouristmap.wikipedia.ArticleRetrieverFactory.java
org.muxe.advancedtouristmap.wikipedia.ArticleRetriever.java
org.muxe.advancedtouristmap.wikipedia.GeonamesRetriever.java
org.muxe.advancedtouristmap.wikipedia.OnlineWikiArticle.java
org.muxe.advancedtouristmap.wikipedia.WikiArticleInterface.java
org.muxe.advancedtouristmap.wikipedia.WikilocationRetriever.java