package im.ricochet.androidod; import android.content.SharedPreferences; import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ProgressBar; import android.widget.TextView; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import goRicochetMobile.GoRicochetMobile; public class ConnectActivity extends AppCompatActivity { public static final String PREFERNCE_FILE = "im.ricochet.PREFERENCE_FILE"; private static final String TAG = "InitActivity"; private static final String PRIVATE_KEY_KEY = "privateKey"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(im.ricochet.androidod.R.layout.activity_connect); TextView progressText = (TextView)findViewById(im.ricochet.androidod.R.id.progressTextView); progressText.setText("Loading private key..."); Log.i(TAG, "Loading private key..."); SharedPreferences prefs = getSharedPreferences(PREFERNCE_FILE, MODE_PRIVATE); String privateKey = prefs.getString(PRIVATE_KEY_KEY, ""); Log.i(TAG, "Loaded! '" + privateKey + "'"); if (privateKey.equals("")) { Log.i(TAG, "Failed to load private key from preferences, generating new"); progressText.setText("Generating private key..."); try { privateKey = GoRicochetMobile.generatePrivateKey(); } catch (Exception e) { Log.e(TAG, e.toString()); } Log.i(TAG, "Generated!: '" + privateKey + "'"); SharedPreferences.Editor prefsEditor = prefs.edit(); prefsEditor.putString(PRIVATE_KEY_KEY, privateKey); prefsEditor.commit(); } Log.i(TAG, "Ready!"); progressText.setText("Ready!"); ProgressBar progressBar = (ProgressBar)findViewById(im.ricochet.androidod.R.id.progressBar); progressBar.setVisibility(View.GONE); Log.i(TAG, "Setting thread policy perms"); StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); Log.i(TAG, "Attempting manual java connection to tor control"); try { Socket socket = new Socket("127.0.0.1", 9051); PrintWriter out = new PrintWriter(socket.getOutputStream(), true); BufferedReader in = new BufferedReader( new InputStreamReader(socket.getInputStream())); out.write("hello"); //String result = in.readLine(); Log.i(TAG, "wrote"); //in.close(); socket.close(); } catch (Exception e) { Log.e(TAG, e.toString()); Log.e(TAG, Log.getStackTraceString(e)); } Log.i(TAG, "Go Net Test..."); try { boolean ok = GoRicochetMobile.testNet(); Log.i(TAG, "NetTest: " + ok); } catch(Exception e) { } Log.i(TAG, "Starting Echo Bot"); GoRicochetMobile.echoBot(privateKey); } }