65  {
   66    super.onCreate(savedInstanceState);
   67 
   68    PreferenceManager mgr = getPreferenceManager();
   69    
   70    mgr.setSharedPreferencesName("TEMP");
   71    mgr.setSharedPreferencesMode(MODE_PRIVATE);
   72 
   73    if (bookmark == null)
   74    {
   75      
   76      Bundle bundle = getIntent().getExtras();
   77      if (bundle != null)
   78      {
   79        
   80        if (bundle.containsKey(PARAM_CONNECTION_REFERENCE))
   81        {
   82          String refStr = bundle.getString(PARAM_CONNECTION_REFERENCE);
   83          if (ConnectionReference.isManualBookmarkReference(refStr))
   84          {
   85            bookmark = GlobalApp.getManualBookmarkGateway().findById(
   86                ConnectionReference.getManualBookmarkId(refStr));
   87            new_bookmark = false;
   88          }
   89          else if (ConnectionReference.isHostnameReference(refStr))
   90          {
   91            bookmark = new ManualBookmark();
   92            bookmark.<ManualBookmark>get().setLabel(
   93                ConnectionReference.getHostname(refStr));
   94            bookmark.<ManualBookmark>get().setHostname(
   95                ConnectionReference.getHostname(refStr));
   96            new_bookmark = true;
   97          }
   98          else if (ConnectionReference.isFileReference(refStr))
   99          {
  100            String file = ConnectionReference.getFile(refStr);
  101 
  102            bookmark = new ManualBookmark();
  103            bookmark.setLabel(file);
  104 
  105            try
  106            {
  107              RDPFileParser rdpFile = new RDPFileParser(file);
  108              updateBookmarkFromFile((ManualBookmark)bookmark, rdpFile);
  109 
  110              bookmark.setLabel(new File(file).getName());
  111              new_bookmark = true;
  112            }
  113            catch (IOException e)
  114            {
  115              Log.e(TAG, "Failed reading RDP file", e);
  116            }
  117          }
  118        }
  119      }
  120 
  121      
  122      if (bookmark == null)
  123        bookmark = new ManualBookmark();
  124 
  125      
  126      if (current_preferences == PREFERENCES_ADVANCED &&
  127          bookmark.getType() != ManualBookmark.TYPE_MANUAL)
  128      {
  129        PreferenceScreen screen = getPreferenceScreen();
  130        screen.removePreference(findPreference("bookmark.enable_gateway"));
  131        screen.removePreference(findPreference("bookmark.gateway"));
  132      }
  133 
  134      updateH264Preferences();
  135 
  136      
  137      bookmark.writeToSharedPreferences(mgr.getSharedPreferences());
  138 
  139      
  140      settings_changed = false;
  141    }
  142 
  143    
  144    if (getIntent() == null || getIntent().getData() == null)
  145    {
  146      addPreferencesFromResource(R.xml.bookmark_settings);
  147      current_preferences = PREFERENCES_BOOKMARK;
  148    }
  149    else if (getIntent().getData().toString().equals("preferences://screen_settings"))
  150    {
  151      addPreferencesFromResource(R.xml.screen_settings);
  152      current_preferences = PREFERENCES_SCREEN;
  153    }
  154    else if (getIntent().getData().toString().equals("preferences://performance_flags"))
  155    {
  156      addPreferencesFromResource(R.xml.performance_flags);
  157      current_preferences = PREFERENCES_PERFORMANCE;
  158    }
  159    else if (getIntent().getData().toString().equals("preferences://screen_settings_3g"))
  160    {
  161      addPreferencesFromResource(R.xml.screen_settings_3g);
  162      current_preferences = PREFERENCES_SCREEN3G;
  163    }
  164    else if (getIntent().getData().toString().equals("preferences://performance_flags_3g"))
  165    {
  166      addPreferencesFromResource(R.xml.performance_flags_3g);
  167      current_preferences = PREFERENCES_PERFORMANCE3G;
  168    }
  169    else if (getIntent().getData().toString().equals("preferences://advanced_settings"))
  170    {
  171      addPreferencesFromResource(R.xml.advanced_settings);
  172      current_preferences = PREFERENCES_ADVANCED;
  173    }
  174    else if (getIntent().getData().toString().equals("preferences://credentials_settings"))
  175    {
  176      addPreferencesFromResource(R.xml.credentials_settings);
  177      current_preferences = PREFERENCES_CREDENTIALS;
  178    }
  179    else if (getIntent().getData().toString().equals("preferences://gateway_settings"))
  180    {
  181      addPreferencesFromResource(R.xml.gateway_settings);
  182      current_preferences = PREFERENCES_GATEWAY;
  183    }
  184    else if (getIntent().getData().toString().equals("preferences://debug_settings"))
  185    {
  186      addPreferencesFromResource(R.xml.debug_settings);
  187      current_preferences = PREFERENCES_DEBUG;
  188    }
  189    else
  190    {
  191      addPreferencesFromResource(R.xml.bookmark_settings);
  192      current_preferences = PREFERENCES_BOOKMARK;
  193    }
  194 
  195    
  196    SharedPreferences spref = mgr.getSharedPreferences();
  197    initSettings(spref);
  198 
  199    
  200    mgr.getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
  201 
  202    
  203    setIntentComponentNames();
  204 
  205    updateH264Preferences();
  206  }