package org.sparkleshare.android;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.Toast;
import android.view.KeyEvent;
import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
/**
* Splash {@link Activity} which will be shown to user when no previously saved credentials could be found.
*
* @author kai
*
*/
public class WelcomeActivity extends FragmentActivity {
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
setContentView(R.layout.welcome_fragment);
}
/**
* Will be called when user clicks a button inside this {@link Activity}
*
* @param target
* Button which was clicked by user
*/
public void buttonClick(View target) {
switch (target.getId()) {
case R.id.btn_insert_linkcode:
Intent setup = new Intent(context, SetupActivity.class);
startActivity(setup);
break;
case R.id.btn_scan_qrcode:
PackageManager pm = getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
IntentIntegrator integrater = new IntentIntegrator(this);
integrater.initiateScan();
}
break;
}
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult != null && scanResult.getContents() != null) {
String content = scanResult.getContents().toLowerCase();
if (!content.startsWith("sshare:") || !content.contains("#")) {
Toast.makeText(this, getString(R.string.invalid_qr_code), Toast.LENGTH_SHORT).show();
} else {
String url = content.split("sshare:")[1].split("#")[0];
String linkcode = content.split("#")[1];
Intent setup = new Intent(this, SetupActivity.class);
setup.putExtra("url", url);
setup.putExtra("linkcode", linkcode);
startActivity(setup);
}
}
}
@Override
public boolean onKeyDown (int keyCode, KeyEvent event)
{
switch(keyCode)
{
case KeyEvent.KEYCODE_MENU:
Intent settings = new Intent(this, SettingsActivity.class);
startActivity(settings);
return true;
}
return false;
}
}