/* Activity for handling connection requests Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package com.freerdp.freerdpcore.services; import android.app.Activity; import android.app.SearchManager; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import com.freerdp.freerdpcore.domain.ConnectionReference; import com.freerdp.freerdpcore.presentation.BookmarkActivity; import com.freerdp.freerdpcore.presentation.SessionActivity; public class SessionRequestHandlerActivity extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); handleIntent(getIntent()); } @Override protected void onNewIntent(Intent intent) { setIntent(intent); handleIntent(intent); } private void startSessionWithConnectionReference(String refStr) { Bundle bundle = new Bundle(); bundle.putString(SessionActivity.PARAM_CONNECTION_REFERENCE, refStr); Intent sessionIntent = new Intent(this, SessionActivity.class); sessionIntent.putExtras(bundle); startActivityForResult(sessionIntent, 0); } private void editBookmarkWithConnectionReference(String refStr) { Bundle bundle = new Bundle(); bundle.putString(BookmarkActivity.PARAM_CONNECTION_REFERENCE, refStr); Intent bookmarkIntent = new Intent(this.getApplicationContext(), BookmarkActivity.class); bookmarkIntent.putExtras(bundle); startActivityForResult(bookmarkIntent, 0); } private void handleIntent(Intent intent) { String action = intent.getAction(); if (Intent.ACTION_SEARCH.equals(action)) startSessionWithConnectionReference(ConnectionReference.getHostnameReference( intent.getStringExtra(SearchManager.QUERY))); else if (Intent.ACTION_VIEW.equals(action)) startSessionWithConnectionReference(intent.getDataString()); else if (Intent.ACTION_EDIT.equals(action)) editBookmarkWithConnectionReference(intent.getDataString()); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); this.setResult(resultCode); this.finish(); } }