package jp.co.cyberagent.stf;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Gravity;
import android.view.Window;
import android.widget.ImageView;
import android.widget.LinearLayout;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import jp.co.cyberagent.stf.util.GraphicUtil;
public class IconActivity extends Activity {
private static final String TAG = "STFIconActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
layout.setKeepScreenOn(true);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT
));
layout.setBackgroundColor(Color.WHITE);
layout.setPadding(16, 16, 16, 16);
layout.setGravity(Gravity.CENTER);
try {
PackageManager pm = getPackageManager();
String pkg = getIntent().getData().getEncodedSchemeSpecificPart();
Drawable icon = pm.getApplicationIcon(pkg);
ImageView iconView = new ImageView(this);
iconView.setImageDrawable(icon);
layout.addView(iconView);
File file = new File(getExternalFilesDir(null), pkg + ".png");
FileOutputStream out = new FileOutputStream(file);
GraphicUtil.drawableToPNGByteString(icon).writeTo(out);
out.close();
Log.i(TAG, String.format("Wrote icon to %s", file.getAbsolutePath()));
}
catch (PackageManager.NameNotFoundException e) {
Log.e(TAG, "No such package");
}
catch (FileNotFoundException e) {
Log.e(TAG, "Unable to open output file");
}
catch (IOException e) {
Log.e(TAG, "Unable to write to output file");
}
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(layout);
}
}