blob: fc892e23f88a27594d2ac3313bc141fbf586e974 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013, 2017 Orange.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* Contributors:
* BAREAU Cyrille <cyrille.bareau@orange.com>,
* BONNARDEL Gregory <gbonnardel.ext@orange.com>,
* BOLLE Sebastien <sebastien.bolle@orange.com>.
*******************************************************************************/
package org.eclipse.om2m.android.dashboard.main;
import java.io.InputStream;
import org.eclipse.om2m.android.dashboard.applications.ApplicationConfigActivity;
import org.eclipse.om2m.android.dashboard.cse.models.OneM2MApplication;
import org.eclipse.om2m.android.dashboard.R;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.util.AttributeSet;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class MainAppEntryView extends LinearLayout {
private TextView tvAppName;
private ImageView ivAppIcon;
private RelativeLayout rlUnactivable;
private boolean canOpenDetails = true;
public OneM2MApplication app;
private static Context context;
public MainAppEntryView(Context context, AttributeSet attrs) {
super(context, attrs);
MainAppEntryView.context = context;
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.main_app_entry_view, this, true);
rlUnactivable = (RelativeLayout) findViewById(R.id.rl_main_app_entry_stopped);
tvAppName = (TextView) findViewById(R.id.tv_main_app_entry_name);
ivAppIcon = (ImageView) findViewById(R.id.iv_main_app_entry_icon);
}
public OneM2MApplication getApplication() {
return app;
}
public void setData(final OneM2MApplication app, boolean canOpenDetails) {
this.canOpenDetails = canOpenDetails;
setData(app);
}
public void setData(final OneM2MApplication app) {
this.app = app;
if (tvAppName != null) {
tvAppName.setText(this.app.getApn());
}
if (ivAppIcon != null) {
// ivAppIcon.setImageDrawable(OTBIconManager.getInstance().getIconForApp(app.getRi(),
// getResources()));
new DownloadImageTask(ivAppIcon).execute(app.getIconUrl());
}
this.setClickable(true);
if (canOpenDetails /* && app.isAccessible() */) {
this.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View arg0) {
// Intent detailsActivity = new Intent(OTBMainAppEntryView.context,
// OTBApplicationDetailsActivity.class);
// detailsActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// detailsActivity.putExtra("applicationId", app.getId());
// OTBMainAppEntryView.context.startActivity(detailsActivity);
return true;
}
});
// if (OTBConstants.ACTIVE.equals("Active"/* app.getStatus() */)) {
this.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent configActivity = new Intent(MainAppEntryView.context,
ApplicationConfigActivity.class);
configActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
configActivity.putExtra("applicationId", app.getRi());
MainAppEntryView.context.startActivity(configActivity);
}
});
// }
}
rlUnactivable.setVisibility(View.INVISIBLE);
}
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}
protected Bitmap doInBackground(String... urls) {
Bitmap mIcon11 = null;
String urldisplay = urls[0];
if (urldisplay != null) {
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
if (result != null) {
bmImage.setImageBitmap(result);
} else {
bmImage.setImageDrawable(getResources().getDrawable(R.drawable.otb_appicon_default));
}
}
}
}