Kore/app/src/main/java/org/xbmc/kore/ui/sections/hosts/EditHostActivity.java

147 lines
5.7 KiB
Java

/*
* Copyright 2015 Synced Synapse. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.xbmc.kore.ui.sections.hosts;
import android.content.Intent;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import androidx.appcompat.app.ActionBar;
import org.xbmc.kore.R;
import org.xbmc.kore.host.HostInfo;
import org.xbmc.kore.host.HostManager;
import org.xbmc.kore.ui.BaseActivity;
/**
* Edits a host
*/
public class EditHostActivity extends BaseActivity implements
HostFragmentManualConfiguration.HostManualConfigurationListener {
private int hostId = -1;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_host_wizard);
// Only load first fragment if we're starting the activity
if (savedInstanceState == null) {
HostFragmentManualConfiguration editFragment = new HostFragmentManualConfiguration();
Bundle extras = getIntent().getExtras();
if (extras != null) {
hostId = extras.getInt(HostFragmentManualConfiguration.HOST_ID);
HostManager hostManager = HostManager.getInstance(this);
HostInfo selectedHostInfo = null;
for (HostInfo hostInfo : hostManager.getHosts()) {
if (hostInfo.getId() == hostId) {
selectedHostInfo = hostInfo;
break;
}
}
if (selectedHostInfo != null) {
Bundle args = new Bundle();
args.putString(HostFragmentManualConfiguration.HOST_NAME,
selectedHostInfo.getName());
args.putString(HostFragmentManualConfiguration.HOST_ADDRESS,
selectedHostInfo.getAddress());
args.putInt(HostFragmentManualConfiguration.HOST_HTTP_PORT,
selectedHostInfo.getHttpPort());
args.putInt(HostFragmentManualConfiguration.HOST_TCP_PORT,
selectedHostInfo.getTcpPort());
args.putString(HostFragmentManualConfiguration.HOST_USERNAME,
selectedHostInfo.getUsername());
args.putString(HostFragmentManualConfiguration.HOST_PASSWORD,
selectedHostInfo.getPassword());
args.putInt(HostFragmentManualConfiguration.HOST_PROTOCOL,
selectedHostInfo.getProtocol());
args.putString(HostFragmentManualConfiguration.HOST_MAC_ADDRESS,
selectedHostInfo.getMacAddress());
args.putInt(HostFragmentManualConfiguration.HOST_WOL_PORT,
selectedHostInfo.getWolPort());
args.putBoolean(HostFragmentManualConfiguration.HOST_USE_EVENT_SERVER,
selectedHostInfo.getUseEventServer());
args.putInt(HostFragmentManualConfiguration.HOST_EVENT_SERVER_PORT,
selectedHostInfo.getEventServerPort());
editFragment.setArguments(args);
}
}
getSupportFragmentManager()
.beginTransaction()
.add(R.id.fragment_container, editFragment)
.commit();
}
setupActionBar();
// // Setup system bars and content padding
// setupSystemBarsColors();
// UIUtils.setPaddingForSystemBars(this, findViewById(R.id.fragment_container), true, true, true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
private void setupActionBar() {
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setTitle(R.string.edit_xbmc);
TypedArray styledAttrs = getTheme().obtainStyledAttributes(new int[] {R.attr.iconHosts});
actionBar.setIcon(styledAttrs.getResourceId(styledAttrs.getIndex(0), R.drawable.ic_devices_white_24dp));
styledAttrs.recycle();
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
/**
* Callbacks for the fragment
*/
public void onHostManualConfigurationNext(HostInfo hostInfo) {
if (hostId != -1) {
HostManager hostManager = HostManager.getInstance(this);
HostInfo newHostInfo = hostManager.editHost(hostId, hostInfo);
hostManager.switchHost(newHostInfo);
}
Intent intent = new Intent(this, HostManagerActivity.class)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
public void onHostManualConfigurationCancel() {
finish();
}
}