Search in sources :

Example 1 with Device

use of com.jaku.model.Device in project RoMote by wseemann.

the class DeviceAdapter method getView.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.device, null);
        holder = new ViewHolder();
        holder.mIcon = (ImageView) convertView.findViewById(android.R.id.icon);
        holder.mText1 = (TextView) convertView.findViewById(android.R.id.text1);
        holder.mText2 = (TextView) convertView.findViewById(android.R.id.text2);
        holder.mText3 = (TextView) convertView.findViewById(R.id.text3);
        holder.mImageButton = (ImageView) convertView.findViewById(R.id.overflow_button);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    final Device device = (Device) getItem(position);
    Device connectedDevice = null;
    try {
        connectedDevice = PreferenceUtils.getConnectedDevice(mContext);
    } catch (Exception ex) {
    }
    Resources res = parent.getContext().getResources();
    Bitmap image = Bitmap.createBitmap(70, 70, Bitmap.Config.ARGB_8888);
    if (connectedDevice != null && device.getSerialNumber().equals(connectedDevice.getSerialNumber())) {
        image.eraseColor(res.getColor(R.color.purple));
    } else {
        image.eraseColor(res.getColor(R.color.semi_transparent));
    }
    RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(res, image);
    roundedBitmapDrawable.setCornerRadius(Math.max(image.getWidth(), image.getHeight()) / 2.0f);
    holder.mIcon.setImageDrawable(roundedBitmapDrawable);
    // device.getUserDeviceName());
    holder.mText1.setText(device.getModelName());
    holder.mText2.setText("SN: " + device.getSerialNumber());
    if (connectedDevice != null && device.getSerialNumber().equals(connectedDevice.getSerialNumber())) {
        holder.mText3.setText(R.string.connected);
    } else {
        holder.mText3.setText(R.string.not_connected);
    }
    holder.mImageButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Message message = mHandler.obtainMessage();
            v.setTag(device);
            message.obj = v;
            mHandler.sendMessage(message);
        }
    });
    return convertView;
}
Also used : RoundedBitmapDrawable(android.support.v4.graphics.drawable.RoundedBitmapDrawable) Bitmap(android.graphics.Bitmap) Message(android.os.Message) Device(com.jaku.model.Device) LayoutInflater(android.view.LayoutInflater) Resources(android.content.res.Resources) ImageView(android.widget.ImageView) TextView(android.widget.TextView) View(android.view.View)

Example 2 with Device

use of com.jaku.model.Device in project RoMote by wseemann.

the class DeviceInfoFragment method sendCommand.

private void sendCommand(String command) {
    String url = command;
    QueryDeviceInfoRequest queryActiveAppRequest = new QueryDeviceInfoRequest(url);
    JakuRequest request = new JakuRequest(queryActiveAppRequest, new DeviceParser());
    new RequestTask(request, new RequestCallback() {

        @Override
        public void requestResult(RokuRequestTypes rokuRequestType, RequestTask.Result result) {
            Device device = (Device) result.mResultValue;
            List<Entry> entries = parseDevice(device);
            mAdapter.addAll(entries);
            mAdapter.notifyDataSetChanged();
            DeviceInfoFragment.this.setListShown(true);
        }

        @Override
        public void onErrorResponse(RequestTask.Result result) {
            DeviceInfoFragment.this.setListShown(true);
        }
    }).execute(RokuRequestTypes.query_device_info);
}
Also used : RequestTask(wseemann.media.romote.tasks.RequestTask) Entry(wseemann.media.romote.model.Entry) QueryDeviceInfoRequest(com.jaku.request.QueryDeviceInfoRequest) RokuRequestTypes(wseemann.media.romote.utils.RokuRequestTypes) JakuRequest(com.jaku.core.JakuRequest) RequestCallback(wseemann.media.romote.tasks.RequestCallback) DeviceParser(com.jaku.parser.DeviceParser) Device(com.jaku.model.Device)

Example 3 with Device

use of com.jaku.model.Device in project RoMote by wseemann.

the class MainFragment method onActivityCreated.

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    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(getActivity(), device);
            PreferenceUtils.setConnectedDevice(getActivity(), device.getSerialNumber());
            SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
            SharedPreferences.Editor editor = prefs.edit();
            editor.putBoolean("first_use", false);
            editor.commit();
            Toast.makeText(getActivity(), "Device " + device.getSerialNumber() + " " + getString(R.string.connected), Toast.LENGTH_SHORT).show();
            MainFragment.this.getActivity().sendBroadcast(new Intent(Constants.UPDATE_DEVICE_BROADCAST));
            AppWidgetManager widgetManager = AppWidgetManager.getInstance(getActivity());
            ComponentName widgetComponent = new ComponentName(getActivity(), RokuAppWidgetProvider.class);
            int[] widgetIds = widgetManager.getAppWidgetIds(widgetComponent);
            Intent update = new Intent();
            update.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, widgetIds);
            update.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
            getActivity().sendBroadcast(update);
            if (mListener != null) {
                mListener.onDeviceSelected();
            }
            mAvailableDeviceAdapter.clear();
            mAdapter.notifyDataSetChanged();
            getLoaderManager().restartLoader(1, new Bundle(), mPairedDevicesLoader);
        }
    });
    mFab.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            // ManualConnectionDialog fragment = ManualConnectionDialog.getInstance(getActivity());
            // fragment.show(MainFragment.this.getFragmentManager(), ManualConnectionDialog.class.getName());
            Intent intent = new Intent(MainFragment.this.getActivity(), ManualConnectionActivity.class);
            startActivityForResult(intent, 0);
        }
    });
    mAdapter = new SeparatedListAdapter(getActivity());
    mPairedDeviceAdapter = new DeviceAdapter(getActivity(), new ArrayList<Device>(), mHandler);
    mAvailableDeviceAdapter = new DeviceAdapter(getActivity(), new ArrayList<Device>(), mHandler);
    mAdapter.addSection("Paired devices", mPairedDeviceAdapter);
    mAdapter.addSection("Available devices", mAvailableDeviceAdapter);
    setListAdapter(mAdapter);
    refreshList(false);
}
Also used : SharedPreferences(android.content.SharedPreferences) Device(com.jaku.model.Device) Bundle(android.os.Bundle) AppWidgetManager(android.appwidget.AppWidgetManager) ArrayList(java.util.ArrayList) Intent(android.content.Intent) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) ListView(android.widget.ListView) SuppressLint(android.annotation.SuppressLint) ManualConnectionActivity(wseemann.media.romote.activity.ManualConnectionActivity) SeparatedListAdapter(wseemann.media.romote.adapter.SeparatedListAdapter) RokuAppWidgetProvider(wseemann.media.romote.widget.RokuAppWidgetProvider) DeviceAdapter(wseemann.media.romote.adapter.DeviceAdapter) AdapterView(android.widget.AdapterView) ComponentName(android.content.ComponentName)

Example 4 with Device

use of com.jaku.model.Device in project RoMote by wseemann.

the class ManualConnectionDialog method sendCommand.

private void sendCommand(String command) {
    String url = command;
    QueryDeviceInfoRequest queryActiveAppRequest = new QueryDeviceInfoRequest(url);
    JakuRequest request = new JakuRequest(queryActiveAppRequest, new DeviceParser());
    new RequestTask(request, new RequestCallback() {

        @Override
        public void requestResult(RokuRequestTypes rokuRequestType, RequestTask.Result result) {
            Device device = (Device) result.mResultValue;
            mProgressLayout.setVisibility(View.GONE);
            storeDevice(device);
        }

        @Override
        public void onErrorResponse(RequestTask.Result result) {
            mProgressLayout.setVisibility(View.GONE);
            mErrorText.setVisibility(View.VISIBLE);
        }
    }).execute(RokuRequestTypes.query_device_info);
}
Also used : RequestTask(wseemann.media.romote.tasks.RequestTask) QueryDeviceInfoRequest(com.jaku.request.QueryDeviceInfoRequest) RokuRequestTypes(wseemann.media.romote.utils.RokuRequestTypes) JakuRequest(com.jaku.core.JakuRequest) RequestCallback(wseemann.media.romote.tasks.RequestCallback) DeviceParser(com.jaku.parser.DeviceParser) Device(com.jaku.model.Device)

Example 5 with Device

use of com.jaku.model.Device in project RoMote by wseemann.

the class ManualConnectionFragment method sendCommand.

private void sendCommand(String command) {
    String url = command;
    QueryDeviceInfoRequest queryActiveAppRequest = new QueryDeviceInfoRequest(url);
    JakuRequest request = new JakuRequest(queryActiveAppRequest, new DeviceParser());
    new RequestTask(request, new RequestCallback() {

        @Override
        public void requestResult(RokuRequestTypes rokuRequestType, RequestTask.Result result) {
            Device device = (Device) result.mResultValue;
            mProgressLayout.setVisibility(View.GONE);
            storeDevice(device);
        }

        @Override
        public void onErrorResponse(RequestTask.Result result) {
            mProgressLayout.setVisibility(View.GONE);
            mErrorText.setVisibility(View.VISIBLE);
        }
    }).execute(RokuRequestTypes.query_device_info);
}
Also used : RequestTask(wseemann.media.romote.tasks.RequestTask) QueryDeviceInfoRequest(com.jaku.request.QueryDeviceInfoRequest) RokuRequestTypes(wseemann.media.romote.utils.RokuRequestTypes) JakuRequest(com.jaku.core.JakuRequest) RequestCallback(wseemann.media.romote.tasks.RequestCallback) DeviceParser(com.jaku.parser.DeviceParser) Device(com.jaku.model.Device)

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