package it.angelic.soulissclient; import android.content.ContextWrapper; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.support.v4.app.FragmentActivity; import android.util.Log; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import java.io.File; import java.net.URISyntaxException; import it.angelic.soulissclient.model.db.SoulissDBHelper; import it.angelic.soulissclient.util.SoulissUtils; import it.angelic.soulissclient.util.SystemUiHider; /** * An example full-screen activity that shows and hides the system UI (i.e. * status bar and navigation/system bar) with user interaction. * * @see SystemUiHider */ public class WelcomeImportConfigActivity extends FragmentActivity { private static final String FTYPE = ".preferences"; private static final int DIALOG_LOAD_FILE = 1000; private static final int FILE_SELECT_CODE = 0; private TextView initialIp; private String mChosenFile; private String[] mFileList; private File mPath = new File(Environment.getExternalStorageDirectory() + Constants.EXTERNAL_EXP_FOLDER); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case FILE_SELECT_CODE: if (resultCode == RESULT_OK) { // Get the Uri of the selected file Uri uri = data.getData(); Log.d(Constants.TAG, "File Uri: " + uri.toString()); // Get the path String path = null; try { path = SoulissUtils.getPath(this, uri); Log.d(Constants.TAG, "File Path: " + path); } catch (URISyntaxException e) { e.printStackTrace(); } initialIp.setText(path); // Get the file instance // File file = new File(path); // Initiate the upload } break; } super.onActivityResult(requestCode, resultCode, data); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_welcome_importconf); // final TextView welcomeSkipText = (TextView) findViewById(R.id.welcome_skip_text); final Button welcomeTourButton = (Button) findViewById(R.id.welcome_tour_button); final EditText configName = (EditText) findViewById(R.id.config_name); initialIp = (TextView) findViewById(R.id.config_ip); ContextWrapper c = new ContextWrapper(WelcomeImportConfigActivity.this); final File importDir = c.getFilesDir(); initialIp.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // This always works showFileChooser(); } }); welcomeTourButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //here we've already chosen config and loaded right if (configName.getText() == null || configName.getText().toString().length() <= 0) { //Toast & exit Toast.makeText(WelcomeImportConfigActivity.this, R.string.config_mandatory, Toast.LENGTH_SHORT).show(); return; } if (initialIp.getText() != null && initialIp.getText().toString().length() > 0) { //Setta Prefs try { File prefs = new File(initialIp.getText().toString()); SoulissUtils.loadSharedPreferencesFromFile(WelcomeImportConfigActivity.this, prefs); Log.w(Constants.TAG, "IMPORTED prefs: " + prefs.getPath()); try { //WelcomeActivity.loadSoulissDbFromFile(configName.getText().toString(), importDir); File bckDb = new File(importDir, prefs.getName().replaceAll(".prefs", "")); SoulissDBHelper db = new SoulissDBHelper(WelcomeImportConfigActivity.this); SoulissDBHelper.open(); String DbPath = SoulissDBHelper.getDatabase().getPath(); db.close(); File newDb = new File(DbPath); SoulissUtils.fileCopy(bckDb, newDb); Log.w(Constants.TAG, "Relative DB loaded " + bckDb.getPath()); } catch (Exception te) { //MAI creato prima? WTF Log.w(Constants.TAG, "Errore import SoulissDbFromFile " + configName, te); } } catch (final Exception e) { Log.e(Constants.TAG, "Error in address parsing: " + e.getMessage(), e); } } String adding = configName.getText().toString(); Log.w(Constants.TAG, "Saving new Config:" + adding); SoulissApp.setCurrentConfig(adding); SoulissApp.addConfiguration(adding); //TODO Ask DB Struct startSoulissMainActivity(); //close and don't go back here supportFinishAfterTransition(); } }); } private void showFileChooser() { Intent intent = new Intent(Intent.ACTION_GET_CONTENT); Uri uri = Uri.parse(Environment.getExternalStorageDirectory().getPath() + Constants.EXTERNAL_EXP_FOLDER); intent.setDataAndType(uri, "*/*"); intent.addCategory(Intent.CATEGORY_OPENABLE); try { startActivityForResult( Intent.createChooser(intent, "Select a File"), FILE_SELECT_CODE); } catch (android.content.ActivityNotFoundException ex) { // Potentially direct the user to the Market with a Dialog Toast.makeText(this, "Please install a File Manager.", Toast.LENGTH_SHORT).show(); } } private void startSoulissMainActivity() { Intent myIntent = new Intent(WelcomeImportConfigActivity.this, OldLauncherActivity.class); startActivity(myIntent); overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left); finish(); } }