package hello.dcsms.omzen.Util; import hello.dcsms.omzen.theme.ThemeKontsran; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Environment; import android.widget.Toast; public class ThemeViewer extends Activity { ProgressDialog pd; @Override protected void onStart() { super.onStart(); pd = new ProgressDialog(this); Intent i = getIntent(); if (i != null) { Uri ui = i.getData(); String namatheme = ui.getEncodedPath(); AlertDialog.Builder b = new AlertDialog.Builder(this); b.setTitle("OMZen Theme"); b.setMessage("Dengan ini kite apply theme \"" + namatheme + "\" nya gan. Ok?"); final String namafile = namatheme; b.setOnCancelListener(new OnCancelListener() { @Override public void onCancel(DialogInterface arg0) { finish(); } }); b.setNeutralButton("Ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface paramDialogInterface, int paramInt) { new UNZIPFILE().execute(namafile); } }); b.setNegativeButton("Batal", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface paramDialogInterface, int paramInt) { finish(); } }); b.show(); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } private class UNZIPFILE extends AsyncTask<String, Void, Boolean> { @Override protected void onPostExecute(Boolean result) { super.onPostExecute(result); Toast.makeText( getApplicationContext(), result ? "menginstall sukses, silahkan reboot utk merasakan khasiatnya" : "menginstall gagal", Toast.LENGTH_SHORT).show(); pd.dismiss(); finish(); } @Override protected void onPreExecute() { super.onPreExecute(); pd.setTitle("Menginstall Tema"); pd.setMessage("Silahkan tunggu sejenak"); pd.setCancelable(false); pd.show(); } @Override protected Boolean doInBackground(String... str) { return ZipUtils .unzip(str[0], Environment.getExternalStorageDirectory() .getAbsolutePath()); } } }