package hello.dcsms.omzen.Panel;
import hello.dcsms.omzen.R;
import hello.dcsms.omzen.S;
import hello.dcsms.omzen.downloader.Download;
import hello.dcsms.omzen.theme.ThemeKontsran;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.AlertDialog;
import android.app.FragmentTransaction;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Process;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;
public class RootPanel extends FragmentActivity {
protected HelpFragment mFrag;
protected MenuFragment menuFrag;
private BackupThemeFragment btfragment;
DrawerLayout mDrawerLayout;
private ActionBarDrawerToggle mDrawerToggle;
private ListView mDrawerList;
private boolean allowexit = false;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.panel_kontrol, menu);
return true;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.fragframe);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
SharedPreferences pref = getSharedPreferences(S.PKGNAME
+ "_preferences", Context.MODE_WORLD_READABLE);
Editor edit = pref.edit();
edit.apply();
mDrawerLayout.setDrawerShadow(R.drawable.shadow, GravityCompat.START);
// set up the drawer's list view with items and click listener
List<HashMap<String, String>> d = new ArrayList<HashMap<String, String>>();
HashMap<String, String> sb = new HashMap<String, String>();
sb.put("head", "SB Konfig");
sb.put("sub", "Konfigurasi wilayah statusbar");
HashMap<String, String> jam = new HashMap<String, String>();
jam.put("head", "Jam Konfig");
jam.put("sub", "Konfigurasi format jam");
HashMap<String, String> theme = new HashMap<String, String>();
theme.put("head", "Tema Lokal");
theme.put("sub", "Ganti tema");
HashMap<String, String> themeol = new HashMap<String, String>();
themeol.put("head", "Tema Online");
themeol.put("sub", "Download tema");
HashMap<String, String> add = new HashMap<String, String>();
add.put("head", "Pengaturan");
add.put("sub", "Konfigurasi lainnya");
HashMap<String, String> help = new HashMap<String, String>();
help.put("head", "Bantuan");
help.put("sub",
"Sebelum grepe-grepe mending baca ini dulu sampai habis");
HashMap<String, String> backup = new HashMap<String, String>();
backup.put("head", "Backup");
backup.put("sub", "Backup tema dan share");
d.add(sb);
d.add(jam);
d.add(theme);
d.add(themeol);
d.add(add);
d.add(help);
d.add(backup);
mDrawerList.setAdapter(new MenuAdapter(this, d));
mDrawerList.setOnItemClickListener(onitemklik);
getActionBar().setBackgroundDrawable(
getResources().getDrawable(R.drawable.ab_bg));
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setTitle("");
getActionBar().setSubtitle("");
cekAPAdefaulticonsudahAdaAtoBelon();
getActionBar().setLogo(getResources().getDrawable(R.drawable.ic_omzen));
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, R.string.hello_world,
R.string.hello_world) {
@Override
public void onDrawerClosed(View drawerView) {
// TODO Auto-generated method stub
invalidateOptionsMenu();
}
@Override
public void onDrawerOpened(View drawerView) {
// TODO Auto-generated method stub
invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
if (savedInstanceState == null)
LoadMenuItem(5);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
// Sync the toggle state after onRestoreInstanceState has occurred.
mDrawerToggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Pass any configuration change to the drawer toggls
mDrawerToggle.onConfigurationChanged(newConfig);
}
private OnItemClickListener onitemklik = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> ab, View v, int x, long as) {
LoadMenuItem(x);
}
};
void dodownloadtheme() {
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.setTitle("Welcome");
dialog.setMessage("OMZen need to download some stuff. Make sure your internet connection is on");
dialog.setCancelable(false);
// dialog.setNeutralButton("Download dari applikasi",
// new DialogInterface.OnClickListener() {
//
// @Override
// public void onClick(DialogInterface paramDialogInterface,
// int paramInt) {
// FragmentTransaction t = getFragmentManager()
// .beginTransaction();
// OnlineThemeFragment olt = new OnlineThemeFragment();
// t.replace(R.id.fragroot, olt);
// getActionBar().setSubtitle("Download tema");
// t.commit();
//
// }
// });
dialog.setPositiveButton("Go", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface,
int paramInt) {
Download d = new Download(getApplicationContext());
d.execute(
"https://www.facebook.com/download/545703998886470/SampleTheme.omztheme",
ThemeKontsran.OMZENTHEMEDIR + "/SampleTheme.omztheme");
// Uri uriUrl = Uri
// .parse("https://www.facebook.com/download/545703998886470/SampleTheme.omztheme");
// Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
// startActivity(launchBrowser);
finish();
// Process.sendSignal(Process.myPid(), Process.SIGNAL_KILL);
}
});
dialog.show();
}
private void cekAPAdefaulticonsudahAdaAtoBelon() {
File f = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath() + "/default_icon");
if (f.exists() && f.isDirectory()) {
File[] files = f.listFiles();
if (files.length < 160)
dodownloadtheme();
} else
dodownloadtheme();
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// If the nav drawer is open, hide action items related to the content
// view
return super.onPrepareOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_restart:
AlertDialog.Builder d = new AlertDialog.Builder(this);
d.setTitle("Restart SystemUI");
d.setMessage("Sebelum restart systemui, toggle Owner harus dinonaktifkan terlebih dahulu untuk mencegah systemui Force close. Apabila sudah nonaktif, silahkan pencet tombol Restart SystemUI");
d.setNeutralButton("Nonaktifkan Dulu",
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface paramDialogInterface,
int paramInt) {
Intent ii = new Intent();
ii.setClassName("com.android.settings",
"com.android.settings.Settings$QuickSettingsCheckersSettingsActivity");
startActivity(ii);
}
});
d.setPositiveButton("Restart SystemUI",
new DialogInterface.OnClickListener() {
@Override
public void onClick(
DialogInterface paramDialogInterface,
int paramInt) {
Intent ii = new Intent();
ii.setAction(S.OMZEN);
sendBroadcast(ii);
}
});
d.show();
return true;
default:
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
if (drawerOpen)
mDrawerLayout.closeDrawer(mDrawerList);
else
mDrawerLayout.openDrawer(mDrawerList);
return super.onOptionsItemSelected(item);
}
}
@Override
public void onBackPressed() {
if (allowexit) {
super.onBackPressed();
} else {
Toast.makeText(getApplicationContext(),
"Tekan tombol back sekali lagi untuk keluar",
Toast.LENGTH_SHORT).show();
allowexit = true;
Handler h = new Handler();
h.postDelayed(new Runnable() {
@Override
public void run() {
allowexit = false;
}
}, 3000);
}
}
public void LoadMenuItem(int s) {
FragmentTransaction t = getFragmentManager().beginTransaction();
switch (s) {
case 0:
StatusbarConfig sbc = new StatusbarConfig();
t.replace(R.id.fragroot, sbc);
getActionBar().setSubtitle("Konfigurasi layout statusbar");
break;
case 1:
JamFragment jf = new JamFragment();
t.replace(R.id.fragroot, jf);
getActionBar().setSubtitle("Konfigurasi format jam");
break;
case 2:
ThemeFragment tf = new ThemeFragment();
t.replace(R.id.fragroot, tf);
getActionBar().setSubtitle("Ganti tema");
break;
case 3:
Intent i = new Intent(this, ONLINE.class);
startActivity(i);
break;
case 4:
SettingFragment sf = new SettingFragment();
t.replace(R.id.fragroot, sf);
getActionBar().setSubtitle("Konfigurasi lain-lain");
break;
case 5:
HelpFragment hf = new HelpFragment();
t.replace(R.id.fragroot, hf);
getActionBar().setSubtitle("Bantuan untuk pemula");
break;
case 6:
btfragment = new BackupThemeFragment();
t.replace(R.id.fragroot, btfragment);
getActionBar().setSubtitle("Backup tema & Share");
break;
}
getActionBar().setTitle("");
getActionBar().setSubtitle("");
t.commit();
Handler h = new Handler();
h.postDelayed(new Runnable() {
public void run() {
mDrawerLayout.closeDrawer(mDrawerList);
}
}, 100);
}
}