package hello.dcsms.omzen.theme;
import hello.dcsms.omzen.R;
import hello.dcsms.omzen.Util.ZipUtils;
import hello.dcsms.omzen.coverflu.CoverFluGL;
import hello.dcsms.omzen.coverflu.CoverFluGL.CoverFluListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
import android.widget.TextView;
import android.widget.Toast;
public class HelloTheme extends Activity {
private TextView txt_info;
private FrameLayout parentLayout;
private CoverFluGL mCoverFlu;
List<String> themefile = new ArrayList<String>();
ArrayList<HashMap<String, String>> themeinfo = new ArrayList<HashMap<String, String>>();
List<Bitmap> themepreview = new ArrayList<Bitmap>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
File f = new File(ThemeKontsran.OMZENTHEMEDIR);
if (!f.exists()) {
f.mkdirs();
}
parentLayout = new FrameLayout(this);
parentLayout.setLayoutParams(new LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT));
txt_info = new TextView(this);
txt_info.setTextColor(Color.WHITE);
txt_info.setTextSize(15f);
new getThemeData(new ThemeListener()).execute();
}
private static interface ProcessingListener {
public void onComplete();
}
private class ThemeListener implements ProcessingListener {
@Override
public void onComplete() {
mCoverFlu = new CoverFluGL(HelloTheme.this);
parentLayout.addView(mCoverFlu, new LayoutParams(
android.view.ViewGroup.LayoutParams.WRAP_CONTENT, android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
LayoutParams params = new LayoutParams(android.view.ViewGroup.LayoutParams.WRAP_CONTENT,
android.view.ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(0, 20, 0, 0);
parentLayout.addView(txt_info, params);
mCoverFlu.setCoverFluListener(new ThemeGLCoverGluListener());
mCoverFlu.setSelection(0);
mCoverFlu.setSensitivity(3.0f);
setContentView(parentLayout);
}
}
private class ThemeGLCoverGluListener implements CoverFluListener {
@Override
public int getCount(CoverFluGL view) {
return themepreview.size();
}
@Override
public Bitmap getImage(CoverFluGL anotherCoverFlow, int position) {
return themepreview.get(position);
}
@Override
public void tileOnTop(CoverFluGL view, final int position) {
runOnUiThread(new Runnable() {
@Override
public void run() {
txt_info.setText(themeinfo.get(position).get("info"));
}
});
}
@Override
public void topTileClicked(CoverFluGL view, int position) {
AlertDialog.Builder b = new AlertDialog.Builder(view.getContext());
b.setTitle("OMZen Theme");
b.setMessage("Dengan ini kite apply theme \""
+ themeinfo.get(position).get("file") + "\" nya gan. Ok?");
final String namafile = themeinfo.get(position).get("file");
b.setNeutralButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface,
int paramInt) {
ZipUtils.unzip(ThemeKontsran.OMZENTHEMEDIR + "/"
+ namafile, Environment
.getExternalStorageDirectory()
.getAbsolutePath());
Toast.makeText(getApplicationContext(), "sukses",
Toast.LENGTH_SHORT).show();
Handler h = new Handler();
}
});
b.setNegativeButton("Batal", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface,
int paramInt) {
// TODO Auto-generated method stub
}
});
b.show();
}
}
private class getThemeData extends AsyncTask<Void, Void, Void> {
private ProcessingListener listener;
public getThemeData(ThemeListener themeListener) {
this.listener = themeListener;
}
@Override
protected Void doInBackground(Void... arg0) {
File files = new File(ThemeKontsran.OMZENTHEMEDIR);
if (files.isDirectory()) {
File[] filesx = files.listFiles();
for (File file : filesx) {
if (file.getName().endsWith("omztheme")) {
themefile.add(file.getName());
}
}
}
for (String theme : themefile) {
ThemeInfoData tid = ThemeInfo.getData(theme);
ThemeData t = tid.gettDATA();
String info = "nama \t\t\t: " + t.get_NAMATEMA()
+ "\npengrajin \t\t: " + t.get_PENGRAJIN()
+ "\nnversi \t\t\t: " + t.get_VERSI()
+ "\nkontak \t\t\t: " + t.get_KONTAK()
+ "\nketerangan \t: " + t.get_KETERANGAN();
HashMap<String, String> ti = new HashMap<String, String>();
if (tid.getTdSS() != null) {
for (Bitmap bmp : tid.getTdSS()) {
themepreview.add(bmp);
ti.put("info", info);
ti.put("file", theme);
themeinfo.add(ti);
}
} else {
themepreview.add(BitmapFactory.decodeResource(
getResources(), R.drawable.ic_launcher));
ti.put("info", info);
ti.put("file", theme);
themeinfo.add(ti);
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
listener.onComplete();
}
}
}