@ -16,22 +16,35 @@
* /
* /
package org.transdroid.core.seedbox ;
package org.transdroid.core.seedbox ;
import java.io.InputStream ;
import org.androidannotations.annotations.EActivity ;
import org.androidannotations.annotations.EActivity ;
import org.androidannotations.annotations.OptionsItem ;
import org.androidannotations.annotations.OptionsItem ;
import org.androidannotations.annotations.OptionsMenu ;
import org.androidannotations.annotations.OptionsMenu ;
import org.apache.http.HttpResponse ;
import org.apache.http.client.methods.HttpGet ;
import org.apache.http.impl.client.DefaultHttpClient ;
import org.transdroid.core.R ;
import org.transdroid.core.R ;
import org.transdroid.core.gui.log.Log ;
import org.transdroid.core.gui.navigation.NavigationHelper ;
import org.transdroid.core.gui.settings.KeyBoundPreferencesActivity ;
import org.transdroid.core.gui.settings.* ;
import org.transdroid.core.gui.settings.* ;
import org.transdroid.daemon.util.HttpHelper ;
import android.annotation.TargetApi ;
import android.annotation.TargetApi ;
import android.content.Intent ;
import android.content.Intent ;
import android.content.SharedPreferences ;
import android.content.SharedPreferences ;
import android.content.SharedPreferences.Editor ;
import android.os.AsyncTask ;
import android.os.Build ;
import android.os.Build ;
import android.os.Bundle ;
import android.os.Bundle ;
import android.preference.EditTextPreference ;
import android.preference.PreferenceManager ;
import android.preference.PreferenceManager ;
import de.keyboardsurfer.android.widget.crouton.Crouton ;
/ * *
/ * *
* Activity that allows for the configuration of a Xirvik shared seedbox . The key can be supplied to update an
* Activity that allows for the configuration of a Xirvik shared seedbox . The key can be supplied to update an existing
* existing server setting instead of creating a new one .
* server setting instead of creating a new one .
* @author Eric Kok
* @author Eric Kok
* /
* /
@EActivity
@EActivity
@ -52,7 +65,68 @@ public class XirvikSharedSettingsActivity extends KeyBoundPreferencesActivity {
initTextPreference ( "seedbox_xirvikshared_server" ) ;
initTextPreference ( "seedbox_xirvikshared_server" ) ;
initTextPreference ( "seedbox_xirvikshared_user" ) ;
initTextPreference ( "seedbox_xirvikshared_user" ) ;
initTextPreference ( "seedbox_xirvikshared_pass" ) ;
initTextPreference ( "seedbox_xirvikshared_pass" ) ;
initTextPreference ( "seedbox_xirvikshared_rpc" ) ;
}
@Override
protected void onPreferencesChanged ( ) {
new AsyncTask < Void , Void , String > ( ) {
@Override
protected String doInBackground ( Void . . . params ) {
try {
// When the shared server settings change, we also have to update the RPC mount point to use
SharedPreferences prefs = PreferenceManager
. getDefaultSharedPreferences ( XirvikSharedSettingsActivity . this ) ;
String server = prefs . getString ( "seedbox_xirvikshared_server_" + key , null ) ;
String user = prefs . getString ( "seedbox_xirvikshared_user_" + key , null ) ;
String pass = prefs . getString ( "seedbox_xirvikshared_pass_" + key , null ) ;
// Retrieve the RPC mount point setting from the server itself
DefaultHttpClient httpclient = HttpHelper . createStandardHttpClient ( true , user , pass , true , null ,
HttpHelper . DEFAULT_CONNECTION_TIMEOUT , server , 443 ) ;
String url = "https://" + server + ":443/browsers_addons/transdroid_autoconf.txt" ;
HttpResponse request = httpclient . execute ( new HttpGet ( url ) ) ;
InputStream stream = request . getEntity ( ) . getContent ( ) ;
String folder = HttpHelper . convertStreamToString ( stream ) . trim ( ) ;
if ( folder . startsWith ( "<?xml" ) ) {
folder = null ;
}
stream . close ( ) ;
return folder ;
} catch ( Exception e ) {
Log . d ( XirvikSharedSettingsActivity . this ,
"Could not retrieve the Xirvik shared seedbox RPC mount point setting: " + e . toString ( ) ) ;
return null ;
}
}
@Override
protected void onPostExecute ( String result ) {
storeScgiMountFolder ( result ) ;
}
} . execute ( ) ;
}
@SuppressWarnings ( "deprecation" )
protected void storeScgiMountFolder ( String result ) {
Editor edit = PreferenceManager . getDefaultSharedPreferences ( XirvikSharedSettingsActivity . this ) . edit ( ) ;
EditTextPreference pref = ( EditTextPreference ) findPreference ( "seedbox_xirvikshared_rpc_" + key ) ;
if ( result = = null ) {
Crouton . showText ( this , R . string . pref_seedbox_xirviknofolder , NavigationHelper . CROUTON_ERROR_STYLE ) ;
edit . remove ( "seedbox_xirvikshared_rpc_" + key ) ;
pref . setSummary ( "" ) ;
} else {
edit . putString ( "seedbox_xirvikshared_rpc_" + key , result ) ;
pref . setSummary ( result ) ;
}
edit . commit ( ) ;
}
}
@TargetApi ( Build . VERSION_CODES . HONEYCOMB )
@TargetApi ( Build . VERSION_CODES . HONEYCOMB )