package net.i2p.android.router.addressbook; import android.content.Context; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import net.i2p.android.router.R; import net.i2p.android.util.LocaleManager; import net.i2p.util.FileUtil; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class AddressbookSettingsActivity extends AppCompatActivity { private EditText text_content_subscriptions; private Button btn_save_subscriptions; private String filename = "/addressbook/subscriptions.txt"; private File i2pDir; private final LocaleManager localeManager = new LocaleManager(); @Override public void onCreate(Bundle savedInstanceState) { localeManager.onCreate(this); super.onCreate(savedInstanceState); setContentView(R.layout.activity_addressbook_settings); // Set the action bar Toolbar toolbar = (Toolbar) findViewById(R.id.main_toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); text_content_subscriptions = (EditText) findViewById(R.id.subscriptions_content); btn_save_subscriptions = (Button) findViewById(R.id.button_save_subscriptions); init_actions(); i2pDir = new File(getFilesDir(), filename); load(); } private void init_actions() { btn_save_subscriptions.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { Context context = getApplicationContext(); CharSequence text; if (save()) { text = "subscriptions.txt successfully saved!"; } else { text = "there was a problem saving subscriptions.txt! Try fix permissions or reinstall i2p."; } Toast.makeText(context, text, Toast.LENGTH_SHORT).show(); } }); } private boolean load() { String res = FileUtil.readTextFile(i2pDir.getAbsolutePath(), -1, true); if (res.length() > 0) { text_content_subscriptions.setText(res); return true; } Context context = getApplicationContext(); CharSequence text = "Sorry, could not load subscriptions.txt!"; Toast.makeText(context, text, Toast.LENGTH_SHORT).show(); return false; } private boolean save() { // String content = text_content_subscriptions.getText().toString(); FileOutputStream out = null; try { out = new FileOutputStream(i2pDir); byte[] contentInBytes = content.getBytes(); out.write(contentInBytes); out.close(); return true; } catch (Exception e) { e.printStackTrace(); return false; } finally { if (out != null) try {out.close(); } catch (IOException ioe) {} } } @Override public void onResume() { super.onResume(); localeManager.onResume(this); } }