package com.trovebox.android.app; import org.holoeverywhere.LayoutInflater; import org.holoeverywhere.app.ProgressDialog; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.webkit.URLUtil; import android.widget.Button; import android.widget.EditText; import com.trovebox.android.app.oauth.OAuthUtils; import com.trovebox.android.common.activity.CommonActivity; import com.trovebox.android.common.fragment.common.CommonFragment; import com.trovebox.android.common.util.GuiUtils; import com.trovebox.android.common.util.ProgressDialogLoadingControl; import com.trovebox.android.common.util.TrackerUtils; import com.trovebox.android.common.util.regex.Patterns; /** * The activity that gets presented to the user in case the user is not logged * in to a server. - setup screen * * @author Patrick Boos */ public class SetupActivity extends CommonActivity { public static final String TAG = SetupActivity.class.getSimpleName(); ProgressDialog progress; /** * Called when Setup Activity is first loaded * * @see android.app.Activity#onCreate(android.os.Bundle) */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .add(android.R.id.content, new SetupUiFragment()).commit(); } } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); if (intent != null && intent.getData() != null) { Uri uri = intent.getData(); OAuthUtils.verifyOAuthResponse(this, new ProgressDialogLoadingControl(this, true, false, getString(R.string.logging_in_message)), uri, new Runnable() { @Override public void run() { startActivity(new Intent(SetupActivity.this, MainActivity.class)); finish(); } }); } } public static class SetupUiFragment extends CommonFragment implements OnClickListener { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater .inflate(R.layout.activity_setup, container, false); ((Button) v.findViewById(R.id.button_login)) .setOnClickListener(this); return v; } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button_login: TrackerUtils.trackButtonClickEvent("button_login", SetupUiFragment.this); String server = ((EditText) getView().findViewById( R.id.edit_server)) .getText().toString().trim(); if (!(URLUtil.isHttpUrl(server) || URLUtil.isHttpsUrl(server))) { server = "http://" + server; } if (!Patterns.WEB_URL.matcher(server).matches()) { GuiUtils.alert(R.string.errorSpecifiedUrlIsInvalid); } else { Preferences.setServer(getActivity(), server); OAuthUtils.askOAuth(getSupportActivity()); } break; } } } }