diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..6f68258 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,9 @@ + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 6e7bd3e..9b0193b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,6 +8,7 @@ android { targetSdkVersion 26 versionCode 1 versionName "1.0" + multiDexEnabled true testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } dataBinding { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ac74587..4b9038a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -28,14 +28,12 @@ android:name=".Activities.Inbox" android:label="@string/title_activity_inbox" android:theme="@style/AppTheme.NoActionBar"> - + - - - @@ -63,12 +60,11 @@ android:theme="@style/SplashTheme"> + - - @@ -88,12 +84,14 @@ - - + \ No newline at end of file diff --git a/app/src/main/java/jeeryweb/geocast/Activities/Home.java b/app/src/main/java/jeeryweb/geocast/Activities/Home.java index f0ae577..12557d5 100644 --- a/app/src/main/java/jeeryweb/geocast/Activities/Home.java +++ b/app/src/main/java/jeeryweb/geocast/Activities/Home.java @@ -2,29 +2,25 @@ import android.app.ActivityManager; import android.app.AlertDialog; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; - +import android.location.Location; +import android.location.LocationManager; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.os.Message; - -import android.util.Log; - -import android.view.View; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; +import android.util.Log; import android.view.Menu; import android.view.MenuItem; - -import android.content.Context; -import android.location.Location; -import android.os.Handler; - +import android.view.View; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; @@ -51,25 +47,22 @@ import jeeryweb.geocast.Dialogs.MessageInputDialog; import jeeryweb.geocast.FirebaseServices.FirebaseRegistrationIntentService; +import jeeryweb.geocast.R; import jeeryweb.geocast.Services.LocationUpdaterService; import jeeryweb.geocast.Utility.FileHelper; import jeeryweb.geocast.Utility.Network; - +import jeeryweb.geocast.Utility.SharedPrefHandler; /** * This class 1.sends the FCM token to the server if running --for the first time-- in a separate thread - * 2.uploads the last known location in a separate thread - * 3.sends the message if send button clicked on a separate thread - * - * 4.Running a FirebaseRegisterIntentService for getting the token for the first time - * 5.starting the LocationUpdater Service - * 6.Starting the MessageRecieverService - * + * 2.uploads the last known location in a separate thread + * 3.sends the message if send button clicked on a separate thread + *

+ * 4.Running a FirebaseRegisterIntentService for getting the token for the first time + * 5.starting the LocationUpdater Service + * 6.Starting the MessageRecieverService */ -import jeeryweb.geocast.R; -import jeeryweb.geocast.Utility.SharedPrefHandler; - public class Home extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener,OnMapReadyCallback { //Attributes*************************************************************** @@ -117,7 +110,7 @@ protected void onCreate(Bundle savedInstanceState) { setContentView(R.layout.activity_home); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); - + statusCheck(); /* @@ -613,4 +606,44 @@ else if (id == R.id.home_nav_share) { drawer.closeDrawer(GravityCompat.START); return true; } + public void statusCheck() { + final LocationManager manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + + if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { + Toast.makeText(Home.this, "Gps not enabled",Toast.LENGTH_SHORT ).show(); + + if(!manager.isProviderEnabled( LocationManager.NETWORK_PROVIDER)){ + Toast.makeText(Home.this, "Network provider not enabled",Toast.LENGTH_SHORT ).show(); + buildAlertMessageNoGps(); + } + + + + } + getLocationMode(Home.class); + Toast.makeText(Home.this, "Location service is working fine",Toast.LENGTH_SHORT).show(); + } + + private void buildAlertMessageNoGps() { + final AlertDialog.Builder builder = new AlertDialog.Builder(this); + builder.setMessage("Your GPS seems to be disabled, do you want to enable it?") + .setCancelable(false) + .setPositiveButton("Yes", new DialogInterface.OnClickListener() { + public void onClick(final DialogInterface dialog, final int id) { + startActivity(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS)); +// Intent i = new Intent(Yourclassname.this,Home.class); startActivity(i); + } + }) + .setNegativeButton("No", new DialogInterface.OnClickListener() { + public void onClick(final DialogInterface dialog, final int id) { + dialog.cancel(); + } + }); + final AlertDialog alert = builder.create(); + alert.show(); + } + public int getLocationMode(Class context) + { + return Settings.Secure.getString(this.getContentResolver(), Settings.Secure.LOCATION_MODE); + } } diff --git a/app/src/main/java/jeeryweb/geocast/TabbedActivity.java b/app/src/main/java/jeeryweb/geocast/TabbedActivity.java new file mode 100644 index 0000000..75289f9 --- /dev/null +++ b/app/src/main/java/jeeryweb/geocast/TabbedActivity.java @@ -0,0 +1,145 @@ +package jeeryweb.geocast; + +import android.support.design.widget.FloatingActionButton; +import android.support.design.widget.Snackbar; +import android.support.v7.app.AppCompatActivity; +import android.support.v7.widget.Toolbar; + +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; +import android.support.v4.view.ViewPager; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; + +import android.widget.TextView; + +public class TabbedActivity extends AppCompatActivity { + + /** + * The {@link android.support.v4.view.PagerAdapter} that will provide + * fragments for each of the sections. We use a + * {@link FragmentPagerAdapter} derivative, which will keep every + * loaded fragment in memory. If this becomes too memory intensive, it + * may be best to switch to a + * {@link android.support.v4.app.FragmentStatePagerAdapter}. + */ + private SectionsPagerAdapter mSectionsPagerAdapter; + + /** + * The {@link ViewPager} that will host the section contents. + */ + private ViewPager mViewPager; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.tabbed); + + Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); + setSupportActionBar(toolbar); + // Create the adapter that will return a fragment for each of the three + // primary sections of the activity. + mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); + + // Set up the ViewPager with the sections adapter. + mViewPager = (ViewPager) findViewById(R.id.container); + mViewPager.setAdapter(mSectionsPagerAdapter); + + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + fab.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + }); + + } + + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.menu_tabbed, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + + //noinspection SimplifiableIfStatement + if (id == R.id.action_settings) { + return true; + } + + return super.onOptionsItemSelected(item); + } + + /** + * A placeholder fragment containing a simple view. + */ + public static class PlaceholderFragment extends Fragment { + /** + * The fragment argument representing the section number for this + * fragment. + */ + private static final String ARG_SECTION_NUMBER = "section_number"; + + public PlaceholderFragment() { + } + + /** + * Returns a new instance of this fragment for the given section + * number. + */ + public static PlaceholderFragment newInstance(int sectionNumber) { + PlaceholderFragment fragment = new PlaceholderFragment(); + Bundle args = new Bundle(); + args.putInt(ARG_SECTION_NUMBER, sectionNumber); + fragment.setArguments(args); + return fragment; + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_tabbed, container, false); + TextView textView = (TextView) rootView.findViewById(R.id.section_label); + textView.setText(getString(R.string.section_format, getArguments().getInt(ARG_SECTION_NUMBER))); + return rootView; + } + } + + /** + * A {@link FragmentPagerAdapter} that returns a fragment corresponding to + * one of the sections/tabs/pages. + */ + public class SectionsPagerAdapter extends FragmentPagerAdapter { + + public SectionsPagerAdapter(FragmentManager fm) { + super(fm); + } + + @Override + public Fragment getItem(int position) { + // getItem is called to instantiate the fragment for the given page. + // Return a PlaceholderFragment (defined as a static inner class below). + return PlaceholderFragment.newInstance(position + 1); + } + + @Override + public int getCount() { + // Show 3 total pages. + return 3; + } + } +} diff --git a/app/src/main/res/layout/fragment_tabbed.xml b/app/src/main/res/layout/fragment_tabbed.xml new file mode 100644 index 0000000..938c64a --- /dev/null +++ b/app/src/main/res/layout/fragment_tabbed.xml @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/tabbed.xml b/app/src/main/res/layout/tabbed.xml new file mode 100644 index 0000000..50b0fc8 --- /dev/null +++ b/app/src/main/res/layout/tabbed.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/menu/menu_tabbed.xml b/app/src/main/res/menu/menu_tabbed.xml new file mode 100644 index 0000000..f05d8dd --- /dev/null +++ b/app/src/main/res/menu/menu_tabbed.xml @@ -0,0 +1,10 @@ +

+ + diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000..63fc816 --- /dev/null +++ b/app/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,6 @@ + + + 64dp + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 4ab4520..6711963 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -5,4 +5,5 @@ 8dp 176dp 16dp + 8dp \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6fdcf64..b57bf91 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -9,7 +9,8 @@ Inbox Sent - + Debojyoti Paul + Debojyoti https://jeeryweb.000webhostapp.com/ProjectLoc/login.php https://jeeryweb.000webhostapp.com/ProjectLoc/register.php https://jeeryweb.000webhostapp.com/ProjectLoc/updateLoc.php @@ -20,5 +21,7 @@ Map + TabbedActivity + Hello World from section: %1$d