Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ android {
targetSdkVersion 26
versionCode 1
versionName "1.0"
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
dataBinding {
Expand Down
14 changes: 6 additions & 8 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,12 @@
android:name=".Activities.Inbox"
android:label="@string/title_activity_inbox"
android:theme="@style/AppTheme.NoActionBar">

<intent-filter>
<action android:name="CONTACTS" />

<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

</activity>

<activity
android:name=".Activities.Sent"
android:label="@string/title_activity_sent"
Expand All @@ -47,7 +45,6 @@
android:name="android.support.PARENT_ACTIVITY"
android:value=".Activities.Home" />
</activity>

<activity android:name=".Activities.Settings" />
<activity android:name=".Activities.OthersProfile" />
<activity android:name=".Activities.InboxMessage" />
Expand All @@ -63,12 +60,11 @@
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>



<service
android:name=".FirebaseServices.FirebaseRegistrationIntentService"
android:exported="false" />
Expand All @@ -88,12 +84,14 @@
</service>
<service android:name=".Services.LocationUpdaterService" />



<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />

<activity
android:name=".TabbedActivity"
android:label="@string/title_activity_tabbed"
android:theme="@style/AppTheme.NoActionBar"></activity>
</application>

</manifest>
77 changes: 55 additions & 22 deletions app/src/main/java/jeeryweb/geocast/Activities/Home.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
* <p>
* 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***************************************************************
Expand Down Expand Up @@ -117,7 +110,7 @@ protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_home);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

statusCheck();


/*
Expand Down Expand Up @@ -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);
}
}
145 changes: 145 additions & 0 deletions app/src/main/java/jeeryweb/geocast/TabbedActivity.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
}
22 changes: 22 additions & 0 deletions app/src/main/res/layout/fragment_tabbed.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="jeeryweb.geocast.TabbedActivity$PlaceholderFragment">

<TextView
android:id="@+id/section_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:layout_marginTop="@dimen/activity_vertical_margin"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="@+id/constraintLayout"
tools:layout_constraintLeft_creator="1"
tools:layout_constraintTop_creator="1" />

</android.support.constraint.ConstraintLayout>
Loading