From 95310c337539d3f53e97f3206a91189512446228 Mon Sep 17 00:00:00 2001 From: ashishandroid Date: Fri, 30 Dec 2016 16:47:05 +0530 Subject: [PATCH 1/6] dbclass1 --- GSKMTOrange/src/main/AndroidManifest.xml | 12 + .../gskmtorange/GeoTag/GeoTagActivity.java | 250 +++++++++++++++++- .../gskmtorange/GeoTag/GeoTagStoreList.java | 7 + .../cpm/com/gskmtorange/LoginActivity.java | 16 ++ .../gskmtorange/constant/CommonString.java | 4 +- .../src/main/res/layout/storeviewlist.xml | 90 +++---- .../src/main/res/mipmap-hdpi/geopin.png | Bin 6367 -> 0 bytes .../src/main/res/mipmap-mdpi/geopin.png | Bin 0 -> 5048 bytes GSKMTOrange/src/main/res/values/strings.xml | 2 + 9 files changed, 331 insertions(+), 50 deletions(-) delete mode 100644 GSKMTOrange/src/main/res/mipmap-hdpi/geopin.png create mode 100644 GSKMTOrange/src/main/res/mipmap-mdpi/geopin.png diff --git a/GSKMTOrange/src/main/AndroidManifest.xml b/GSKMTOrange/src/main/AndroidManifest.xml index 2ddd1c5..5dad14a 100644 --- a/GSKMTOrange/src/main/AndroidManifest.xml +++ b/GSKMTOrange/src/main/AndroidManifest.xml @@ -54,6 +54,18 @@ android:label="@string/title_activity_store_list_geotag" android:theme="@style/AppTheme.NoActionBar" /> + + + + + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagActivity.java index 3644f03..e815df5 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagActivity.java @@ -1,35 +1,69 @@ package cpm.com.gskmtorange.geotag; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.location.Geocoder; import android.location.Location; import android.location.LocationManager; import android.os.Bundle; import android.preference.PreferenceManager; +import android.provider.Settings; import android.support.design.widget.FloatingActionButton; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; +import android.util.Log; +import android.widget.Toast; +import com.google.android.gms.common.ConnectionResult; +import com.google.android.gms.common.GooglePlayServicesUtil; +import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.location.LocationListener; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; import cpm.com.gskmtorange.R; +import cpm.com.gskmtorange.constant.CommonString; +import cpm.com.gskmtorange.database.GSKOrangeDB; /** * Created by ashishc on 27-12-2016. */ -public class GeoTagActivity extends AppCompatActivity //implements OnMapReadyCallback,GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener +public class GeoTagActivity extends AppCompatActivity implements OnMapReadyCallback,GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, LocationListener { private GoogleMap mMap; double latitude =0.0; double longitude =0.0; - LocationManager locationManager; + private Location mLastLocation; private LocationManager locmanager = null; FloatingActionButton fab,fabcarmabtn; SupportMapFragment mapFragment; SharedPreferences preferences; + String username,storeid,str; + GSKOrangeDB db; + LocationManager locationManager; + Geocoder geocoder; + boolean enabled; + private final static int PLAY_SERVICES_RESOLUTION_REQUEST = 1000; + private GoogleApiClient mGoogleApiClient; + private LocationRequest mLocationRequest; + private static int UPDATE_INTERVAL = 500; // 5 sec + private static int FATEST_INTERVAL = 100; // 1 sec + private static int DISPLACEMENT = 5; // 10 meters + private static final String TAG = GeoTagActivity.class.getSimpleName(); protected void onCreate(Bundle savedInstanceState) { @@ -38,21 +72,93 @@ public class GeoTagActivity extends AppCompatActivity //implements OnMapReady Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); preferences = PreferenceManager.getDefaultSharedPreferences(this); - //username = preferences.getString(CommonString.KEY_USERNAME, null); + username = preferences.getString(CommonString.KEY_USERNAME, null); fab = (FloatingActionButton) findViewById(R.id.fab); fabcarmabtn = (FloatingActionButton) findViewById(R.id.camrabtn); + db = new GSKOrangeDB(GeoTagActivity.this); + db.open(); + + + + storeid = getIntent().getStringExtra("Storeid"); + str = CommonString.FILE_PATH; + mapFragment = (SupportMapFragment) getSupportFragmentManager() .findFragmentById(R.id.map); - // mapFragment.getMapAsync(this); + mapFragment.getMapAsync(this); + locationManager = (LocationManager) this + .getSystemService(LOCATION_SERVICE); + geocoder = new Geocoder(this); + Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); + + + if (checkPlayServices()) { + + // Building the GoogleApi client + buildGoogleApiClient(); + } + + + + if (checkPlayServices()) { + + // Building the GoogleApi client + buildGoogleApiClient(); + + createLocationRequest(); + } + + + locmanager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + enabled = locmanager.isProviderEnabled(LocationManager.GPS_PROVIDER); + + + + if (!enabled) { + + AlertDialog.Builder alertDialog = new AlertDialog.Builder( + GeoTagActivity.this); + + // Setting Dialog Title + alertDialog.setTitle("GPS IS DISABLED..."); + + // Setting Dialog Message + alertDialog.setMessage("Click ok to enable GPS."); + + // Setting Positive "Yes" Button + alertDialog.setPositiveButton("YES", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + + Intent intent = new Intent( + Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivity(intent); + } + }); + + // Setting Negative "NO" Button + alertDialog.setNegativeButton("NO", + new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int which) { + // Write your code here to invoke NO event + + dialog.cancel(); + } + }); + + // Showing Alert Message + alertDialog.show(); + + } @@ -60,6 +166,142 @@ public class GeoTagActivity extends AppCompatActivity //implements OnMapReady + private boolean checkPlayServices() { + int resultCode = GooglePlayServicesUtil + .isGooglePlayServicesAvailable(this); + if (resultCode != ConnectionResult.SUCCESS) { + if (GooglePlayServicesUtil.isUserRecoverableError(resultCode)) { + GooglePlayServicesUtil.getErrorDialog(resultCode, this, + PLAY_SERVICES_RESOLUTION_REQUEST).show(); + } else { + Toast.makeText(getApplicationContext(), + "This device is not supported.", Toast.LENGTH_LONG) + .show(); + finish(); + } + return false; + } + return true; + } + + protected synchronized void buildGoogleApiClient() { + mGoogleApiClient = new GoogleApiClient.Builder(this) + .addConnectionCallbacks(this) + .addOnConnectionFailedListener(this) + .addApi(LocationServices.API).build(); + } + + + protected void createLocationRequest() { + mLocationRequest = new LocationRequest(); + mLocationRequest.setInterval(UPDATE_INTERVAL); + mLocationRequest.setFastestInterval(FATEST_INTERVAL); + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + mLocationRequest.setSmallestDisplacement(DISPLACEMENT); + } + + protected void startLocationUpdates() { + + + if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + + LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); + + } + + } + + /** + * Stopping location updates + */ + protected void stopLocationUpdates() { + LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); + } + + @Override + public void onConnected(Bundle bundle) { + + mLastLocation = LocationServices.FusedLocationApi + .getLastLocation(mGoogleApiClient); + + if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED + || ContextCompat.checkSelfPermission(this, android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { + if (mLastLocation != null) { + latitude = mLastLocation.getLatitude(); + longitude = mLastLocation.getLongitude(); + + mMap.setMyLocationEnabled(true); + + // Add a marker of latest location and move the camera + LatLng latLng = new LatLng(latitude, longitude); + mMap.addMarker(new MarkerOptions().position(latLng)); + mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng)); + mMap.animateCamera(CameraUpdateFactory.zoomTo(15)); + } + } + + + // if (mRequestingLocationUpdates) { + startLocationUpdates(); + // } + + // startLocationUpdates(); + } + + @Override + public void onConnectionSuspended(int i) { + mGoogleApiClient.connect(); + } + + @Override + public void onLocationChanged (Location location){ + + } + + @Override + public void onConnectionFailed (ConnectionResult connectionResult) { + Log.i(TAG, "Connection failed: ConnectionResult.getErrorCode() = " + connectionResult.getErrorCode()); + } + + @Override + public void onMapReady(GoogleMap googleMap) { + mMap = googleMap; + } + + protected void onStart() { + super.onStart(); + if (mGoogleApiClient != null) { + mGoogleApiClient.connect(); + } + } + + @Override + protected void onResume() { + super.onResume(); + + /* checkPlayServices(); + + // Resuming the periodic location updates + if (mGoogleApiClient.isConnected() && mRequestingLocationUpdates) { + startLocationUpdates(); + }*/ + } + + @Override + protected void onStop() { + super.onStop(); + if (mGoogleApiClient.isConnected()) { + mGoogleApiClient.disconnect(); + } + } + + @Override + protected void onPause() { + super.onPause(); + stopLocationUpdates(); + } + diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagStoreList.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagStoreList.java index 85e989f..51a00f7 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagStoreList.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/GeoTag/GeoTagStoreList.java @@ -1,6 +1,7 @@ package cpm.com.gskmtorange.geotag; import android.content.Context; +import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; @@ -81,6 +82,12 @@ public class GeoTagStoreList extends AppCompatActivity { int position, long id) { + Intent in =new Intent(GeoTagStoreList.this,GeoTagActivity.class); + + startActivity(in); + finish(); + + Toast.makeText(getApplicationContext(),"Click",Toast.LENGTH_LONG).show(); diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java index 37b4103..92d3185 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/LoginActivity.java @@ -11,6 +11,7 @@ import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.location.Location; import android.location.LocationListener; +import android.os.Environment; import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.design.widget.Snackbar; @@ -44,6 +45,7 @@ import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; +import java.io.File; import java.io.IOException; import java.io.StringReader; import java.net.MalformedURLException; @@ -154,6 +156,20 @@ public class LoginActivity extends AppCompatActivity { mLoginFormView = findViewById(R.id.login_form); mProgressView = findViewById(R.id.login_progress); + + + // Create a Folder for Images + + File file = new File(Environment.getExternalStorageDirectory(), + "GSK_MT_Images"); + if (!file.isDirectory()) { + file.mkdir(); + } + + + + + } /* private void populateAutoComplete() { diff --git a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java index 5f114c9..bc6949b 100644 --- a/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java +++ b/GSKMTOrange/src/main/java/cpm/com/gskmtorange/constant/CommonString.java @@ -1,5 +1,7 @@ package cpm.com.gskmtorange.constant; +import android.os.Environment; + /** * Created by yadavendras on 19-12-2016. */ @@ -14,7 +16,7 @@ public class CommonString { public static final String KEY_PASSWORD = "password"; public static final String KEY_DATE = "date"; public static final String KEY_STOREVISITED_STATUS = "STOREVISITED_STATUS"; - + public static final String FILE_PATH = Environment.getExternalStorageDirectory() + "/GSK_MT_Images/"; public static final String KEY_PATH = "path"; diff --git a/GSKMTOrange/src/main/res/layout/storeviewlist.xml b/GSKMTOrange/src/main/res/layout/storeviewlist.xml index 4971339..d5c3774 100644 --- a/GSKMTOrange/src/main/res/layout/storeviewlist.xml +++ b/GSKMTOrange/src/main/res/layout/storeviewlist.xml @@ -9,64 +9,64 @@ android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginBottom="2dp" android:layout_marginLeft="2dp" android:layout_marginRight="2dp" android:layout_marginTop="2dp" - android:layout_marginBottom="2dp" android:layout_weight="35" card_view:cardBackgroundColor="@color/colorOrange" card_view:cardCornerRadius="15dp"> - - - - + android:padding="10sp"> - + -