Search in sources :

Example 11 with Device

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);
}
Also used : RemoteViews(android.widget.RemoteViews) Device(com.jaku.model.Device) Intent(android.content.Intent) PendingIntent(android.app.PendingIntent) PendingIntent(android.app.PendingIntent)

Example 12 with Device

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;
}
Also used : RokuRequestTypes(wseemann.media.romote.utils.RokuRequestTypes) Device(com.jaku.model.Device) Channel(com.jaku.model.Channel) List(java.util.List) ByteArrayOutputStream(java.io.ByteArrayOutputStream) JakuResponse(com.jaku.core.JakuResponse)

Example 13 with Device

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));
    }
}
Also used : Entry(wseemann.media.romote.model.Entry) DeviceInfoAdapter(wseemann.media.romote.adapter.DeviceInfoAdapter) Bundle(android.os.Bundle) Device(com.jaku.model.Device) ArrayList(java.util.ArrayList)

Example 14 with Device

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();
}
Also used : Device(com.jaku.model.Device) MenuItem(android.view.MenuItem) Intent(android.content.Intent) DeviceInfoActivity(wseemann.media.romote.activity.DeviceInfoActivity) PopupMenu(android.support.v7.widget.PopupMenu)

Example 15 with Device

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);
        }
    });
}
Also used : NavigationView(android.support.design.widget.NavigationView) ActionBarDrawerToggle(android.support.v7.app.ActionBarDrawerToggle) ArrayList(java.util.ArrayList) ImageButton(android.widget.ImageButton) TabLayout(android.support.design.widget.TabLayout) FloatingActionButton(android.support.design.widget.FloatingActionButton) DeviceAdapter(wseemann.media.romote.adapter.DeviceAdapter) ComponentName(android.content.ComponentName) DrawerLayout(android.support.v4.widget.DrawerLayout) Toolbar(android.support.v7.widget.Toolbar) SharedPreferences(android.content.SharedPreferences) Device(com.jaku.model.Device) Bundle(android.os.Bundle) AppWidgetManager(android.appwidget.AppWidgetManager) Intent(android.content.Intent) NavigationView(android.support.design.widget.NavigationView) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) ListView(android.widget.ListView) SuppressLint(android.annotation.SuppressLint) SeparatedListAdapter(wseemann.media.romote.adapter.SeparatedListAdapter) RokuAppWidgetProvider(wseemann.media.romote.widget.RokuAppWidgetProvider) AdapterView(android.widget.AdapterView) InstallChannelDialog(wseemann.media.romote.fragment.InstallChannelDialog)

Aggregations

Device (com.jaku.model.Device)20 ArrayList (java.util.ArrayList)6 Intent (android.content.Intent)5 RokuRequestTypes (wseemann.media.romote.utils.RokuRequestTypes)4 SharedPreferences (android.content.SharedPreferences)3 Bundle (android.os.Bundle)3 View (android.view.View)3 TextView (android.widget.TextView)3 JakuRequest (com.jaku.core.JakuRequest)3 DeviceParser (com.jaku.parser.DeviceParser)3 QueryDeviceInfoRequest (com.jaku.request.QueryDeviceInfoRequest)3 RequestCallback (wseemann.media.romote.tasks.RequestCallback)3 RequestTask (wseemann.media.romote.tasks.RequestTask)3 SuppressLint (android.annotation.SuppressLint)2 AppWidgetManager (android.appwidget.AppWidgetManager)2 ComponentName (android.content.ComponentName)2 Cursor (android.database.Cursor)2 SQLiteDatabase (android.database.sqlite.SQLiteDatabase)2 PopupMenu (android.support.v7.widget.PopupMenu)2 MenuItem (android.view.MenuItem)2