Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.tiesna.tracker;
- import java.util.ArrayList;
- import com.tiesna.tracker.helper.JSONParser;
- import com.tiesna.tracker.helper.SessionManager;
- import com.tiesna.tracker.helper.SQLiteHandler;
- import java.util.HashMap;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.http.NameValuePair;
- import org.apache.http.message.BasicNameValuePair;
- import org.json.JSONObject;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.app.Activity;
- import android.app.ProgressDialog;
- import android.view.Menu;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
- import NavDrawerListAdapter.NavDrawerListAdapter;
- import android.annotation.SuppressLint;
- import android.annotation.TargetApi;
- import android.app.ActivityManager;
- import android.app.ActivityManager.RunningServiceInfo;
- import android.app.AlertDialog;
- 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.content.res.TypedArray;
- import android.graphics.Color;
- import android.graphics.drawable.ColorDrawable;
- import android.os.Build;
- import android.os.Bundle;
- import android.os.CountDownTimer;
- import android.support.v4.app.ActionBarDrawerToggle;
- import android.support.v4.app.FragmentActivity;
- import android.support.v4.app.FragmentManager;
- import android.support.v4.app.FragmentTransaction;
- import android.support.v4.widget.DrawerLayout;
- import android.view.Gravity;
- import android.view.LayoutInflater;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.EditText;
- import android.widget.ListView;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.tiesna.tracker.R;
- @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
- public class MainActivity extends FragmentActivity {
- String latitude,longitude;
- Button submit;
- JSONParser jParser = new JSONParser();
- ProgressDialog pDialog;
- private static String url = "http://192.168.43.213/skripsi/api/insert.php";
- private SQLiteHandler db;
- private SessionManager session;
- private DrawerLayout mDrawerLayout;
- private ListView mDrawerList;
- private ActionBarDrawerToggle mDrawerToggle;
- // nav drawer title
- private CharSequence mDrawerTitle;
- // used to store app title
- private CharSequence mTitle;
- // slide menu items
- private String[] navMenuTitles;
- private TypedArray navMenuIcons;
- private ArrayList<NavDrawerItem> navDrawerItems;
- private NavDrawerListAdapter adapter;
- SetGeofenceFragment mSetGeofenceFragment;
- FragmentTransaction mFragmentTransaction;
- FragmentManager fragmentManager;
- Menu menu;
- static MainActivity mainActivity;
- SharedPreferences sharedpreferences;
- public static final String MyPREFERENCES = "MyPrefs" ;
- Editor editor;
- int i,j,k,l,m;
- AlertDialog alertForMobileNumber;
- String lastnumber="";
- CounterClass timer;
- int itemSave = -1;
- int itemselected = -1;
- public static MainActivity activity()
- {
- return mainActivity;
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- input input = new input();
- input.execute();
- mainActivity = this;
- latitude = "-6.711647";
- longitude ="108.5413";
- db = new SQLiteHandler(getApplicationContext());
- session = new SessionManager(getApplicationContext());
- if (!session.isLoggedIn()) {
- logoutUser();
- }
- timer = new CounterClass(100000000, 40000);
- timer.start();
- mTitle = mDrawerTitle = getTitle();
- // load slide menu items
- navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
- // nav drawer icons from resources
- navMenuIcons = getResources().obtainTypedArray(R.array.nav_drawer_icons);
- mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
- mDrawerList = (ListView) findViewById(R.id.list_slidermenu);
- navDrawerItems = new ArrayList<NavDrawerItem>();
- navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
- navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
- navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
- navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
- navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1), true, "22"));
- alertForMobileNumber = new AlertDialog.Builder(this).create();
- alertForMobileNumber.setTitle("Invalid number");
- alertForMobileNumber.setMessage("Mobile number must be of atleast 10 characters");
- // Recycle the typed array
- navMenuIcons.recycle();
- // setting the nav drawer list adapter
- adapter = new NavDrawerListAdapter(getApplicationContext(),
- navDrawerItems);
- mDrawerList.setAdapter(adapter);
- // enabling action bar app icon and behaving it as toggle button
- getActionBar().setDisplayHomeAsUpEnabled(true);
- getActionBar().setHomeButtonEnabled(true);
- getActionBar().setBackgroundDrawable(new ColorDrawable(Color.parseColor("#FF0000")));
- getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent)));
- mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
- R.drawable.ic_drawer, //nav menu toggle icon
- R.string.app_name, // nav drawer open - description for accessibility
- R.string.app_name // nav drawer close - description for accessibility
- )
- {
- public void onDrawerClosed(View view) {
- getActionBar().setTitle(mTitle);
- // calling onPrepareOptionsMenu() to show action bar icons
- invalidateOptionsMenu();
- }
- public void onDrawerOpened(View drawerView) {
- getActionBar().setTitle(mDrawerTitle);
- // calling onPrepareOptionsMenu() to hide action bar icons
- invalidateOptionsMenu();
- }
- };
- mDrawerList.setOnItemClickListener(new SlideMenuClickListener());
- if (savedInstanceState == null)
- {
- fragmentManager = getSupportFragmentManager();
- mFragmentTransaction = fragmentManager.beginTransaction();
- mSetGeofenceFragment = new SetGeofenceFragment();
- mFragmentTransaction.add(R.id.frame_container, mSetGeofenceFragment);
- mFragmentTransaction.commit();
- }
- }
- // logout user
- private void logoutUser() {
- // TODO Auto-generated method stub
- session.setLogin(false);
- db.deleteUsers();
- // Launching the login activity
- Intent intent = new Intent(MainActivity.this, LoginActivity.class);
- startActivity(intent);
- finish();
- }
- /// json kirim data
- public class input extends AsyncTask<String, String, String>
- {
- HashMap<String, String> user = db.getUserDetails();
- String email = user.get("email");
- String success;
- @Override
- protected void onPreExecute() {
- super.onPreExecute();
- pDialog = new ProgressDialog(MainActivity.this);
- pDialog.setMessage("Sending Data to server...");
- pDialog.setIndeterminate(false);
- pDialog.show();
- }
- @Override
- protected String doInBackground(String... arg0) {
- String strEMAIL = email.toString();
- String strNama = latitude.toString();
- String strProdi = longitude.toString();
- List<NameValuePair> params = new ArrayList<NameValuePair>();
- params.add(new BasicNameValuePair("email", strEMAIL));
- params.add(new BasicNameValuePair("latitude", strNama));
- params.add(new BasicNameValuePair("longitude", strProdi));
- JSONObject json = jParser.makeHttpRequest(url, "POST", params);
- try {
- success = json.getString("success");
- } catch (Exception e) {
- Toast.makeText(getApplicationContext(), "Error",
- Toast.LENGTH_LONG).show();
- }
- return null;
- }
- protected void onPostExecute(String file_url) {
- // dismiss the dialog once done
- pDialog.dismiss();
- if (success.equals("1"))
- {
- Toast.makeText(getApplicationContext(), "kirim data Sukses!!!", Toast.LENGTH_LONG).show();
- }
- else
- {
- Toast.makeText(getApplicationContext(), "kirim data Gagal!!!", Toast.LENGTH_LONG).show();
- }
- }
- }
- ///// json kirim data selesai
- public void setvisiblemenu()
- {
- menu.setGroupVisible(R.menu.main, true);
- }
- public void setinvisiblemenu()
- {
- menu.setGroupVisible(R.menu.main, false);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- this.menu =menu;
- return true;
- }
- @Override
- protected void onStart() {
- // TODO Auto-generated method stub
- // EasyTracker.getInstance(this).activityStart(this);
- super.onStart();
- }
- @Override
- protected void onResume() {
- // TODO Auto-generated method stub
- timer.start();
- super.onResume();
- }
- @Override
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- }
- @Override
- protected void onStop() {
- // TODO Auto-generated method stub
- timer.cancel();
- // EasyTracker.getInstance(this).activityStop(this);
- super.onStop();
- }
- private class SlideMenuClickListener implements ListView.OnItemClickListener
- {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position,long id)
- {
- // display view for selected nav drawer item
- displayView(position);
- }
- }
- private void displayView(int position) {
- switch (position) {
- case 0:
- break;
- case 1:
- LayoutInflater layoutInflater = LayoutInflater.from(getApplicationContext());
- View promptView = layoutInflater.inflate(R.layout.alert_target, null);
- AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
- alertDialogBuilder.setTitle("Mobile Number");
- alertDialogBuilder.setView(promptView);
- sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
- editor = sharedpreferences.edit();
- final EditText input = (EditText) promptView.findViewById(R.id.alert_target_editText_phone);
- if(sharedpreferences.contains("number"))
- {
- lastnumber=sharedpreferences.getString("number",lastnumber);
- input.setText(lastnumber);
- }
- else
- {
- System.out.println("number is empty");
- }
- // setup a dialog window
- alertDialogBuilder.setCancelable(false)
- .setPositiveButton("OK", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- if(input.length()<10)
- {
- alertForMobileNumber.setButton("OK",new DialogInterface.OnClickListener() {
- public void onClick(final DialogInterface dialog, final int which) {
- }
- });
- alertForMobileNumber.show();
- return;
- }
- else
- {
- String s=input.getText().toString();
- editor.putString("number", s);
- editor.commit();
- }
- }
- })
- .setNegativeButton("Cancel",
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int id) {
- dialog.cancel();
- }
- });
- alertDialogBuilder.show();
- mDrawerLayout.closeDrawers();
- break;
- case 2:
- final CharSequence[] items={"Just once", "Twice in 10 mins", "Every 3 mins", "Every 10 mins", "Every hour"};
- final AlertDialog.Builder builder=new AlertDialog.Builder(this);
- builder.setTitle("Alert Geofence");
- sharedpreferences =getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
- editor = sharedpreferences.edit();
- int selected = sharedpreferences.getInt("item",-1);
- itemSave = sharedpreferences.getInt("timer",-1);
- itemselected = selected;
- builder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- System.out.println("which "+itemselected);
- if(itemselected != -1 )
- {
- editor.putInt("timer",itemSave);
- editor.putInt("item",itemselected);
- editor.commit();
- if(sharedpreferences.contains("number"))
- {
- lastnumber=sharedpreferences.getString("number",lastnumber);
- if(lastnumber.equals("")){
- System.out.println("number is but empty");
- alertForMobileNumber.setTitle("Mobile Number Empty");
- alertForMobileNumber.setMessage("Please first enter the Mobile Number");
- alertForMobileNumber.setButton("OK",new DialogInterface.OnClickListener() {
- public void onClick(final DialogInterface dialog, final int which) {
- }
- });
- alertForMobileNumber.show();
- }
- else {
- Intent mIntent = new Intent(getApplicationContext(), MyService.class);
- mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- mIntent.setAction("com.tiesna.tracker.MyService");
- if(isMyServiceRunning(MyService.class))
- {
- stopService(mIntent);
- startService(mIntent);
- }
- else
- {
- startService(mIntent);
- }
- }
- }
- else
- {
- alertForMobileNumber.setTitle("No kosong");
- alertForMobileNumber.setMessage("Silahkan masukan no hp");
- alertForMobileNumber.setButton("OK",new DialogInterface.OnClickListener() {
- public void onClick(final DialogInterface dialog, final int which) {
- }
- });
- alertForMobileNumber.show();
- }
- }
- else
- {
- Toast.makeText(getApplicationContext(),"Select timer", Toast.LENGTH_SHORT).show();
- }
- }
- });
- builder.setSingleChoiceItems(items,selected, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- if("Just once".equals(items[which]))
- {
- itemSave = 3000000;
- itemselected = which;
- }
- if("Twice in 10 mins".equals(items[which]))
- {
- itemSave = 300000;
- itemselected = which;
- }
- else if("Every 3 mins".equals(items[which]))
- {
- itemSave = 180000;
- itemselected = which;
- }
- else if("Every 10 mins".equals(items[which]))
- {
- itemSave = 600000;
- itemselected = which;
- }
- else if("Every hour".equals(items[which]))
- {
- itemSave = 3600000;
- itemselected = which;
- }
- }
- });
- builder.show();
- mDrawerLayout.closeDrawers();
- break;
- case 3:
- AlertDialog.Builder builder1=new AlertDialog.Builder(this);
- builder1.setTitle("Disable Geofence");
- builder1.setMessage("Are you sure you want to disbale Geofence alerts?");
- builder1.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- new input().execute();
- Intent trollIntent = new Intent(getApplicationContext(),MyService.class);
- stopService(trollIntent);
- }
- });
- builder1.setNegativeButton("No", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {}
- });
- builder1.show();
- mDrawerLayout.closeDrawers();
- break;
- case 4:
- session.setLogin(false);
- db.deleteUsers();
- // Launching the login activity
- Intent intent = new Intent(MainActivity.this, LoginActivity.class);
- startActivity(intent);
- finish();
- break;
- default:
- break;
- }
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // toggle nav drawer on selecting action bar app icon/title
- if (mDrawerToggle.onOptionsItemSelected(item)) {
- return true;
- }
- // Handle action bar actions click
- switch (item.getItemId())
- {
- case R.id.menu_currentLocation:
- mSetGeofenceFragment.currentLocation();
- return true;
- case R.id.menu_showGeofence:
- mSetGeofenceFragment.showGeofence();
- return true;
- case R.id.menu_setGeofence:
- mSetGeofenceFragment.SetGeofence();
- return true;
- default:
- return super.onOptionsItemSelected(item);
- }
- }
- /***
- * Called when invalidateOptionsMenu() is triggered
- */
- @Override
- public boolean onPrepareOptionsMenu(Menu menu) {
- // if nav drawer is opened, hide the action items
- boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
- //menu.findItem(R.id.action_settings).setVisible(!drawerOpen);
- return super.onPrepareOptionsMenu(menu);
- }
- @Override
- public void setTitle(CharSequence title) {
- mTitle = title;
- getActionBar().setTitle(mTitle);
- }
- /**
- * When using the ActionBarDrawerToggle, you must call it during
- * onPostCreate() and onConfigurationChanged()...
- */
- @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 boolean isMyServiceRunning(Class<?> serviceClass) {
- ActivityManager manager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
- for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
- if (serviceClass.getName().equals(service.service.getClassName())) {
- return true;
- }
- }
- return false;
- }
- @TargetApi(Build.VERSION_CODES.GINGERBREAD)
- @SuppressLint("NewApi")
- public class CounterClass extends CountDownTimer {
- public CounterClass(long millisInFuture, long countDownInterval) {
- super(millisInFuture, countDownInterval);
- }
- @Override
- public void onFinish() {
- }
- @SuppressLint("NewApi")
- @TargetApi(Build.VERSION_CODES.GINGERBREAD)
- @Override
- public void onTick(long millisUntilFinished) {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement