use of com.jaku.model.Device in project RoMote by wseemann.
the class RokuAppWidgetProvider method defaultAppWidget.
/**
* Initialize given widgets to default state, where we launch Music on default click
* and hide actions if service not running.
*/
private void defaultAppWidget(Context context, int[] appWidgetIds) {
Device device = null;
try {
device = PreferenceUtils.getConnectedDevice(context);
} catch (Exception ex) {
return;
}
final RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.roku_appwidget);
views.setTextViewText(R.id.model_name_text, device.getModelName());
linkButtons(context, views, false);
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, /* no requestCode */
intent, 0);
views.setOnClickPendingIntent(R.id.info_layout, pendingIntent);
pushUpdate(context, appWidgetIds, views);
}
use of com.jaku.model.Device in project RoMote by wseemann.
the class RequestTask method doInBackground.
@Override
protected RequestTask.Result doInBackground(RokuRequestTypes... requestTypes) {
Result result = null;
if (!isCancelled() && requestTypes != null && requestTypes.length > 0) {
RokuRequestTypes requestType = requestTypes[0];
try {
if (requestType.equals(RokuRequestTypes.query_active_app)) {
JakuResponse response = request.send();
List<Channel> channels = (List<Channel>) response.getResponseData();
result = new Result(channels);
} else if (requestType.equals(RokuRequestTypes.query_device_info)) {
JakuResponse response = request.send();
Device device = (Device) response.getResponseData();
result = new Result(device);
} else if (requestType.equals(RokuRequestTypes.query_icon)) {
JakuResponse response = request.send();
byte[] data = ((ByteArrayOutputStream) response.getResponseData()).toByteArray();
result = new Result(data);
} else {
request.send();
}
} catch (Exception e) {
e.printStackTrace();
result = new Result(e);
}
}
return result;
}
use of com.jaku.model.Device in project RoMote by wseemann.
the class DeviceInfoFragment method onActivityCreated.
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setEmptyText(getString(R.string.no_device_info));
Bundle bundle = getArguments();
String serialNumber = bundle.getString("serial_number");
String host = bundle.getString("host");
Device device = DBUtils.getDevice(getActivity(), serialNumber);
List<Entry> entries = new ArrayList<Entry>();
if (device != null) {
entries = parseDevice(device);
}
mAdapter = new DeviceInfoAdapter(DeviceInfoFragment.this.getActivity(), entries);
setListAdapter(mAdapter);
setListShown(false);
if (host == null) {
sendCommand(CommandHelper.getConnectedDeviceInfoURL(getActivity(), device.getHost()));
} else {
sendCommand(CommandHelper.getDeviceInfoURL(getActivity(), host));
}
}
use of com.jaku.model.Device in project RoMote by wseemann.
the class MainFragment method showMenu.
private void showMenu(final View v) {
PopupMenu popup = new PopupMenu(getActivity(), v);
// This activity implements OnMenuItemClickListener
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
Device device = (Device) v.getTag();
switch(item.getItemId()) {
case R.id.action_info:
Intent intent = new Intent(getActivity(), DeviceInfoActivity.class);
intent.putExtra("serial_number", device.getSerialNumber());
intent.putExtra("host", device.getHost());
startActivity(intent);
return true;
case R.id.action_unpair:
PreferenceUtils.setConnectedDevice(getActivity(), "");
DBUtils.removeDevice(getActivity(), device.getSerialNumber());
refreshList(false);
return true;
default:
return false;
}
}
});
popup.inflate(R.menu.device_menu);
Device device = (Device) v.getTag();
if (DBUtils.getDevice(getActivity(), device.getSerialNumber()) == null) {
popup.getMenu().removeItem(R.id.action_unpair);
}
popup.show();
}
use of com.jaku.model.Device in project RoMote by wseemann.
the class AltMainActivity method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// ManualConnectionDialog fragment = ManualConnectionDialog.getInstance(this);
// fragment.show(MainFragment.this.getFragmentManager(), ManualConnectionDialog.class.getName());
Intent intent = new Intent(AltMainActivity.this, ManualConnectionActivity.class);
startActivityForResult(intent, 0);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
}
}
});
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (prefs.getBoolean("first_use", true)) {
startActivity(new Intent(this, ConfigureDeviceActivity.class));
finish();
}
Intent intent = getIntent();
if (intent != null && intent.getData() != null) {
String channelCode = intent.getData().getPath().replace("/install/", "");
InstallChannelDialog fragment = InstallChannelDialog.getInstance(this, channelCode);
fragment.show(getFragmentManager(), InstallChannelDialog.class.getName());
}
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
mViewPager.setOffscreenPageLimit(3);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(mViewPager);
// Bind to NotificationService
Intent intent1 = new Intent(this, NotificationService.class);
bindService(intent1, mConnection, Context.BIND_AUTO_CREATE);
mSelectDeviceText = (TextView) findViewById(R.id.select_device_text);
mProgressLayout = (RelativeLayout) findViewById(R.id.progress_layout);
mList = (ListView) findViewById(android.R.id.list);
View emptyView = findViewById(android.R.id.empty);
mList.setEmptyView(emptyView);
mSwiperefresh = (SwipeRefreshLayout) findViewById(R.id.swiperefresh);
/*mSwiperefresh.setOnRefreshListener(
new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
// This method performs the actual data-refresh operation.
// The method calls setRefreshing(false) when it's finished.
setLoadingText(true);
getLoaderManager().restartLoader(0, new Bundle(), mAvailableDevicesLoader);
}
}
);*/
mList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Device device = (Device) parent.getItemAtPosition(position);
DBUtils.insertDevice(AltMainActivity.this, device);
PreferenceUtils.setConnectedDevice(AltMainActivity.this, device.getSerialNumber());
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(AltMainActivity.this);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("first_use", false);
editor.commit();
Toast.makeText(AltMainActivity.this, "Device " + device.getSerialNumber() + " " + getString(R.string.connected), Toast.LENGTH_SHORT).show();
sendBroadcast(new Intent(Constants.UPDATE_DEVICE_BROADCAST));
AppWidgetManager widgetManager = AppWidgetManager.getInstance(AltMainActivity.this);
ComponentName widgetComponent = new ComponentName(AltMainActivity.this, RokuAppWidgetProvider.class);
int[] widgetIds = widgetManager.getAppWidgetIds(widgetComponent);
Intent update = new Intent();
update.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widgetIds);
update.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
sendBroadcast(update);
if (mListener != null) {
mListener.onDeviceSelected();
}
mAvailableDeviceAdapter.clear();
mAdapter.notifyDataSetChanged();
getLoaderManager().restartLoader(1, new Bundle(), mPairedDevicesLoader);
}
});
mAdapter = new SeparatedListAdapter(this);
mPairedDeviceAdapter = new DeviceAdapter(this, new ArrayList<Device>(), mHandler);
mAvailableDeviceAdapter = new DeviceAdapter(this, new ArrayList<Device>(), mHandler);
mAdapter.addSection("Paired devices", mPairedDeviceAdapter);
mAdapter.addSection("Available devices", mAvailableDeviceAdapter);
mList.setAdapter(mAdapter);
refreshList(false);
ImageButton refreshButton = (ImageButton) findViewById(R.id.refresh_button);
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getLoaderManager().restartLoader(0, new Bundle(), mAvailableDevicesLoader);
}
});
}
Aggregations