Change menu to a nice one.
This commit is contained in:
parent
7a4fe41d02
commit
0585fb3eb1
|
|
@ -1,11 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: android.arch.core:common:1.0.0@jar">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.0.0/a2d487452376193fc8c103dd2b9bd5f2b1b44563/common-1.0.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.0.0/a41fa3b9a66f3bdd41f98013a1688e969072aaf2/common-1.0.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: android.arch.lifecycle:common:1.0.0@jar">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.0.0/e414a4cb28434e25c4f6aa71426eb20cf4874ae9/common-1.0.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.0.0/39ce4055689b4b766478265a8c661f4165f26dc3/common-1.0.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: android.arch.lifecycle:runtime-1.0.0">
|
||||
<CLASSES>
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/e4b8d6849b4f747ac306163e75cdb5cf/res" />
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/runtime-1.0.0.aar/e4b8d6849b4f747ac306163e75cdb5cf/jars/classes.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/runtime/1.0.0/1dd0298d8c45d8dfa4d038270247327f23df7a3a/runtime-1.0.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:animated-vector-drawable-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/animated-vector-drawable-26.1.0.aar/03a266d7b1fdabf9751d50209abfef27/res" />
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/animated-vector-drawable-26.1.0.aar/03a266d7b1fdabf9751d50209abfef27/jars/classes.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/animated-vector-drawable/26.1.0/91743e9b07667784f471a3c4748e6883cd810084/animated-vector-drawable-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:appcompat-v7-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/d7b805d26acb11cecad454fb76602feb/jars/classes.jar!/" />
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.1.0.aar/d7b805d26acb11cecad454fb76602feb/res" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/appcompat-v7/26.1.0/2b34456c30d6b6e5db5fa3e8fa02f6cebd5531fd/appcompat-v7-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:design-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/design-26.1.0.aar/0aca89f8362a06101759246087c383dc/res" />
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/design-26.1.0.aar/0aca89f8362a06101759246087c383dc/jars/classes.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/design/26.1.0/c7ac62df01dd0a97d93500ad3da7faebf03ba49/design-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:recyclerview-v7-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/recyclerview-v7-26.1.0.aar/afc596a16be62ca7fc9ff904ce003b11/res" />
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/recyclerview-v7-26.1.0.aar/afc596a16be62ca7fc9ff904ce003b11/jars/classes.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/recyclerview-v7/26.1.0/63d6891b399433c913fe91ce95a8456de02d367f/recyclerview-v7-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:support-annotations:26.1.0@jar">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/26.1.0/814258103cf26a15fcc26ecce35f5b7d24b73f8/support-annotations-26.1.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/26.1.0/29ca6aaf2d4976c13dd7c836e91bd2a61b697bf3/support-annotations-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:support-annotations:27.1.1@jar">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/27.1.1/39ded76b5e1ce1c5b2688e1d25cdc20ecee32007/support-annotations-27.1.1.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/27.1.1/46bebf5bd40146178cb33c7678f3782a09dea6e4/support-annotations-27.1.1-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:support-compat-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/ca5c1ef39794160edaff7bf981a986f6/jars/classes.jar!/" />
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-compat-26.1.0.aar/ca5c1ef39794160edaff7bf981a986f6/res" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-compat/26.1.0/73bfdb5cca1949a51219d3676700996990ea3b52/support-compat-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:support-core-ui-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/b33fb7ed5ef644699f94079c56acc169/res" />
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-ui-26.1.0.aar/b33fb7ed5ef644699f94079c56acc169/jars/classes.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-core-ui/26.1.0/4d52cef4a24bf9939de1d256ca9f0974c6e636a4/support-core-ui-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:support-core-utils-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/3c00b385845512b5eb0e8adcf6d4824c/res" />
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-core-utils-26.1.0.aar/3c00b385845512b5eb0e8adcf6d4824c/jars/classes.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-core-utils/26.1.0/2b0c3da7f80880bbf365452b354490a77f085c96/support-core-utils-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:support-fragment-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/8d55dfbe4dab9eef0abd3b94246a83d7/res" />
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-fragment-26.1.0.aar/8d55dfbe4dab9eef0abd3b94246a83d7/jars/classes.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-fragment/26.1.0/8279b00f5194701ff18363fa2958c5a26670b0ef/support-fragment-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:support-media-compat-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/de5d5fac66793fe73bea262b806134d1/jars/classes.jar!/" />
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-media-compat-26.1.0.aar/de5d5fac66793fe73bea262b806134d1/res" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-media-compat/26.1.0/774fd1164ec32514eec562953f723a1920a7fef7/support-media-compat-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:support-v4-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/bc4e477156d1484b72763c1097e78a7c/jars/classes.jar!/" />
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-v4-26.1.0.aar/bc4e477156d1484b72763c1097e78a7c/res" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-v4/26.1.0/9c53eab3272b3b26583b17facac2e90d264b2788/support-v4-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:support-vector-drawable-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-vector-drawable-26.1.0.aar/aef0d078545049e553f0d35b010e8309/jars/classes.jar!/" />
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/support-vector-drawable-26.1.0.aar/aef0d078545049e553f0d35b010e8309/res" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/support-vector-drawable/26.1.0/7a59c417eb560e5ddc2de20792ad45b38e422a5b/support-vector-drawable-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<component name="libraryTable">
|
||||
<library name="Gradle: com.android.support:transition-26.1.0">
|
||||
<CLASSES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/transition-26.1.0.aar/7b2b04792323ede7d754cab99fa07578/jars/classes.jar!/" />
|
||||
<root url="file://$USER_HOME$/.gradle/caches/transforms-1/files-1.1/transition-26.1.0.aar/7b2b04792323ede7d754cab99fa07578/res" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.android.support/transition/26.1.0/bf675688e3ad5a0b68c627efa77de94822af2610/transition-26.1.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/AppTheme">
|
||||
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
|
|
|
|||
|
|
@ -18,6 +18,10 @@ import android.os.Vibrator;
|
|||
import android.preference.PreferenceManager;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.support.design.widget.NavigationView;
|
||||
import android.support.v4.view.GravityCompat;
|
||||
import android.support.v4.widget.DrawerLayout;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.util.Log;
|
||||
|
|
@ -64,7 +68,7 @@ import fr.chteufleur.mytrackingdog.services.ServiceGps;
|
|||
import fr.chteufleur.mytrackingdog.services.ServiceTrackingDog;
|
||||
import fr.chteufleur.mytrackingdog.services.ServiceXmpp;
|
||||
|
||||
public class MainActivity extends AppCompatActivity implements IOrientationConsumer, Observer {
|
||||
public class MainActivity extends AppCompatActivity implements IOrientationConsumer, Observer, NavigationView.OnNavigationItemSelectedListener {
|
||||
|
||||
public static final String TAG = MainActivity.class.getName();
|
||||
|
||||
|
|
@ -80,6 +84,8 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
|
|||
|
||||
private Context ctx = null;
|
||||
private MapView map = null;
|
||||
private DrawerLayout mDrawerLayout;
|
||||
private NavigationView navigationView;
|
||||
|
||||
private int deviceOrientation = 0;
|
||||
private boolean zoomed = false;
|
||||
|
|
@ -124,6 +130,13 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
|
|||
|
||||
Toolbar toolbar = findViewById(R.id.toolbar);
|
||||
setSupportActionBar(toolbar);
|
||||
ActionBar actionBar = getSupportActionBar();
|
||||
actionBar.setDisplayHomeAsUpEnabled(true);
|
||||
actionBar.setHomeAsUpIndicator(R.drawable.ic_menu);
|
||||
|
||||
mDrawerLayout = findViewById(R.id.drawer_layout);
|
||||
navigationView = findViewById(R.id.nav_view);
|
||||
navigationView.setNavigationItemSelectedListener(this);
|
||||
|
||||
map = findViewById(R.id.map);
|
||||
map.setTileSource(TileSourceFactory.OpenTopo);
|
||||
|
|
@ -309,39 +322,78 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
|
|||
@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_main, menu);
|
||||
getMenuInflater().inflate(R.menu.drawer_view, menu);
|
||||
|
||||
MenuItem vibrationObjectMenuItem = menu.findItem(R.id.action_active_vibration_object);
|
||||
vibrationObjectMenuItem.setChecked(serviceTrackingDog.isVibrationNearObjectEnabled());
|
||||
Menu _menu = navigationView.getMenu();
|
||||
_menu.findItem(R.id.action_qr_code_generator).setEnabled(false);
|
||||
_menu.findItem(R.id.action_qr_code_reader).setEnabled(false);
|
||||
_menu.findItem(R.id.action_active_vibration_object).setIcon(getResources().getDrawable(
|
||||
serviceTrackingDog.isVibrationNearObjectEnabled() ? R.drawable.ic_check_box_checked : R.drawable.ic_check_box_unchecked));
|
||||
_menu.findItem(R.id.action_active_vibration_object).setChecked(serviceTrackingDog.isVibrationNearObjectEnabled());
|
||||
updateSendTraceMenu();
|
||||
return false;
|
||||
//return super.onCreateOptionsMenu(menu);
|
||||
}
|
||||
|
||||
MenuItem xmppObjectMenuItem = menu.findItem(R.id.action_active_xmpp);
|
||||
xmppObjectMenuItem.setChecked(serviceTrackingDog.isXmppEnabled());
|
||||
return true;
|
||||
private void updateSendTraceMenu() {
|
||||
boolean isTrailFileExist = serviceTrackingDog.getLastExportedTrailFile() != null;
|
||||
boolean isXmppActive = serviceTrackingDog.isXmppEnabled();
|
||||
navigationView.getMenu().findItem(R.id.action_send_gpx_trail).setEnabled(isTrailFileExist);
|
||||
navigationView.getMenu().findItem(R.id.action_send_gpx_trail_by_xmpp).setEnabled(isXmppActive && isTrailFileExist);
|
||||
}
|
||||
|
||||
@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.
|
||||
if (item.getItemId() == android.R.id.home) {
|
||||
mDrawerLayout.openDrawer(GravityCompat.START);
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
|
||||
int id = item.getItemId();
|
||||
|
||||
//noinspection SimplifiableIfStatement
|
||||
if (id == R.id.action_import_gpx) {
|
||||
startActivityPickFile();
|
||||
mDrawerLayout.closeDrawers();
|
||||
return true;
|
||||
} else if (id == R.id.action_send_gpx_trail) {
|
||||
startActivitySendGpxFile();
|
||||
mDrawerLayout.closeDrawers();
|
||||
return true;
|
||||
} else if (id == R.id.action_active_vibration_object) {
|
||||
activeVibrationObject(item);
|
||||
return true;
|
||||
|
||||
} else if (id == R.id.action_active_xmpp) {
|
||||
activeXmpp(item);
|
||||
return true;
|
||||
} else if (id == R.id.action_qr_code_generator) {
|
||||
startActivityQrCodeGenerator();
|
||||
mDrawerLayout.closeDrawers();
|
||||
return true;
|
||||
} else if (id == R.id.action_qr_code_reader) {
|
||||
startActivityQrCodeReader();
|
||||
mDrawerLayout.closeDrawers();
|
||||
return true;
|
||||
} else if (id == R.id.action_send_gpx_trail_by_xmpp) {
|
||||
sendGpxFileByXmpp();
|
||||
mDrawerLayout.closeDrawers();
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void startActivityPickFile() {
|
||||
Intent intent = new Intent(this, FilePicker.class);
|
||||
intent.putExtra(FilePicker.EXTRA_FILE_PATH, Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + appName);
|
||||
startActivityForResult(intent, ACTIVITY_REQUEST_PICK_FILE);
|
||||
return true;
|
||||
}
|
||||
|
||||
} else if (id == R.id.action_qr_code_generator) {
|
||||
Intent intent = new Intent(this, QRCodeGeneratorActivity.class);
|
||||
startActivityForResult(intent, ACTIVITY_QR_CODE_GENERATOR);
|
||||
|
||||
} else if (id == R.id.action_qr_code_reader) {
|
||||
Intent intent = new Intent(this, QRCodeReaderActivity.class);
|
||||
startActivityForResult(intent, ACTIVITY_QR_CODE_READER);
|
||||
|
||||
} else if (id == R.id.action_send_gpx_trail) {
|
||||
private void startActivitySendGpxFile() {
|
||||
File trailFile = serviceTrackingDog.getLastExportedTrailFile();
|
||||
if (trailFile != null) {
|
||||
Intent shareIntent = new Intent();
|
||||
|
|
@ -353,9 +405,52 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
|
|||
} else {
|
||||
Toast.makeText(ctx, "Aucune trace enregistré.", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
} else if (id == R.id.action_send_gpx_trail_by_xmpp) {
|
||||
private void activeVibrationObject(MenuItem item) {
|
||||
boolean checked = item.isChecked();
|
||||
item.setChecked(!checked);
|
||||
serviceTrackingDog.setVibrationNearObjectEnabled(!checked);
|
||||
navigationView.getMenu().findItem(R.id.action_active_vibration_object).setIcon(getResources().getDrawable(
|
||||
serviceTrackingDog.isVibrationNearObjectEnabled() ? R.drawable.ic_check_box_checked : R.drawable.ic_check_box_unchecked));
|
||||
}
|
||||
|
||||
private void activeXmpp(MenuItem item) {
|
||||
boolean checked = item.isChecked();
|
||||
boolean newStat = !checked;
|
||||
|
||||
if (newStat) {
|
||||
try {
|
||||
serviceTrackingDog.enableXmpp();
|
||||
Toast.makeText(ctx, "Connexion XMPP réussie", Toast.LENGTH_SHORT).show();
|
||||
} catch (InterruptedException | IOException | SmackException | XMPPException e) {
|
||||
e.printStackTrace();
|
||||
Toast.makeText(ctx, "Echec de connexion XMPP", Toast.LENGTH_LONG).show();
|
||||
newStat = false;
|
||||
}
|
||||
}
|
||||
if (!newStat) {
|
||||
serviceTrackingDog.disableXmpp();
|
||||
}
|
||||
|
||||
navigationView.getMenu().findItem(R.id.action_qr_code_generator).setEnabled(newStat);
|
||||
navigationView.getMenu().findItem(R.id.action_qr_code_reader).setEnabled(newStat);
|
||||
navigationView.getMenu().findItem(R.id.action_send_gpx_trail_by_xmpp).setEnabled(newStat && serviceTrackingDog.getLastExportedTrailFile() != null);
|
||||
item.setChecked(newStat);
|
||||
item.setIcon(getResources().getDrawable(newStat ? R.drawable.ic_check_box_checked : R.drawable.ic_check_box_unchecked));
|
||||
}
|
||||
|
||||
private void startActivityQrCodeGenerator() {
|
||||
Intent intent = new Intent(this, QRCodeGeneratorActivity.class);
|
||||
startActivityForResult(intent, ACTIVITY_QR_CODE_GENERATOR);
|
||||
}
|
||||
|
||||
private void startActivityQrCodeReader() {
|
||||
Intent intent = new Intent(this, QRCodeReaderActivity.class);
|
||||
startActivityForResult(intent, ACTIVITY_QR_CODE_READER);
|
||||
}
|
||||
|
||||
private void sendGpxFileByXmpp() {
|
||||
File trailFile = serviceTrackingDog.getLastExportedTrailFile();
|
||||
if (trailFile != null) {
|
||||
try {
|
||||
|
|
@ -366,35 +461,6 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
|
|||
} else {
|
||||
Toast.makeText(ctx, "Aucune trace enregistré.", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
return true;
|
||||
|
||||
} else if (id == R.id.action_active_vibration_object) {
|
||||
boolean checked = item.isChecked();
|
||||
item.setChecked(!checked);
|
||||
serviceTrackingDog.setVibrationNearObjectEnabled(!checked);
|
||||
return true;
|
||||
|
||||
} else if (id == R.id.action_active_xmpp) {
|
||||
boolean checked = item.isChecked();
|
||||
boolean newStat = !checked;
|
||||
item.setChecked(newStat);
|
||||
if (newStat) {
|
||||
try {
|
||||
serviceTrackingDog.enableXmpp();
|
||||
Toast.makeText(ctx, "Connexion XMPP réussie", Toast.LENGTH_SHORT).show();
|
||||
} catch (InterruptedException | IOException | SmackException | XMPPException e) {
|
||||
e.printStackTrace();
|
||||
Toast.makeText(ctx, "Echec de connexion XMPP", Toast.LENGTH_LONG).show();
|
||||
item.setChecked(false);
|
||||
serviceTrackingDog.disableXmpp();
|
||||
}
|
||||
} else {
|
||||
serviceTrackingDog.disableXmpp();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
//</editor-fold>
|
||||
|
||||
|
|
@ -407,6 +473,7 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
|
|||
serviceTrackingDog.importGpxTrace(new File(data.getStringExtra(FilePicker.EXTRA_FILE_PATH)));
|
||||
updateDogTrace();
|
||||
updateTrailTrace();
|
||||
updateSendTraceMenu();
|
||||
|
||||
// Update distance
|
||||
distance = serviceTrackingDog.calculTrailDistance();
|
||||
|
|
@ -516,6 +583,7 @@ public class MainActivity extends AppCompatActivity implements IOrientationConsu
|
|||
this.add_object.setVisibility(View.GONE);
|
||||
this.start_stop_dog_trace.setVisibility(View.VISIBLE);
|
||||
}
|
||||
updateSendTraceMenu();
|
||||
}
|
||||
|
||||
private void changeStatusDogTrace() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M19,3L5,3c-1.11,0 -2,0.9 -2,2v14c0,1.1 0.89,2 2,2h14c1.11,0 2,-0.9 2,-2L21,5c0,-1.1 -0.89,-2 -2,-2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z"/>
|
||||
</vector>
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M19,5v14H5V5h14m0,-2H5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h14c1.1,0 2,-0.9 2,-2V5c0,-1.1 -0.9,-2 -2,-2z"/>
|
||||
</vector>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.0 KiB |
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FFFFFFFF"
|
||||
android:pathData="M3,18h18v-2L3,16v2zM3,13h18v-2L3,11v2zM3,6v2h18L21,6L3,6z"/>
|
||||
</vector>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/>
|
||||
</vector>
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".MainActivity">
|
||||
|
||||
<android.support.design.widget.AppBarLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:theme="@style/AppTheme.AppBarOverlay">
|
||||
|
||||
<android.support.v7.widget.Toolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay" />
|
||||
|
||||
</android.support.design.widget.AppBarLayout>
|
||||
|
||||
<include layout="@layout/content_main" />
|
||||
|
||||
<android.support.design.widget.FloatingActionButton
|
||||
android:id="@+id/fab"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
app:srcCompat="@android:drawable/ic_dialog_email" />
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<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:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||
tools:context=".MainActivity"
|
||||
tools:showIn="@layout/activity_main">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Hello World!"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</android.support.constraint.ConstraintLayout>
|
||||
|
|
@ -1,4 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/drawer_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fitsSystemWindows="true">
|
||||
|
||||
<android.support.design.widget.CoordinatorLayout 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"
|
||||
|
|
@ -16,7 +23,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
android:background="?attr/colorPrimary"
|
||||
app:popupTheme="@style/AppTheme.PopupOverlay" />
|
||||
app:popupTheme="@style/ThemeOverlay.AppCompat.ActionBar" />
|
||||
|
||||
<TextView android:id="@+id/textViewCurrentLocation"
|
||||
android:layout_width="fill_parent"
|
||||
|
|
@ -83,3 +90,12 @@
|
|||
</LinearLayout>
|
||||
|
||||
</android.support.design.widget.CoordinatorLayout>
|
||||
|
||||
<android.support.design.widget.NavigationView
|
||||
android:id="@+id/nav_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_gravity="start"
|
||||
android:fitsSystemWindows="true"
|
||||
app:menu="@menu/drawer_view"/>
|
||||
</android.support.v4.widget.DrawerLayout>
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
<item
|
||||
android:id="@+id/action_import_gpx"
|
||||
android:title="@string/action_import_gpx"
|
||||
android:icon="@drawable/ic_import" />
|
||||
<item
|
||||
android:id="@+id/action_send_gpx_trail"
|
||||
android:title="@string/action_send_gpx_trail"
|
||||
android:icon="@drawable/ic_share" />
|
||||
<item
|
||||
android:id="@+id/action_active_vibration_object"
|
||||
android:title="@string/action_active_vibration_object"
|
||||
android:icon="@drawable/ic_check_box_unchecked" />
|
||||
|
||||
<item
|
||||
android:title="@string/menu_title_xmpp" >
|
||||
<menu>
|
||||
<item
|
||||
android:id="@+id/action_active_xmpp"
|
||||
android:title="@string/action_active_xmpp"
|
||||
android:icon="@drawable/ic_check_box_unchecked" />
|
||||
<item
|
||||
android:id="@+id/action_qr_code_generator"
|
||||
android:title="@string/action_qr_code_generator" />
|
||||
<item
|
||||
android:id="@+id/action_qr_code_reader"
|
||||
android:title="@string/action_qr_code_reader" />
|
||||
<item
|
||||
android:id="@+id/action_send_gpx_trail_by_xmpp"
|
||||
android:title="@string/action_send_gpx_trail_by_xmpp"
|
||||
android:icon="@drawable/ic_share" />
|
||||
</menu>
|
||||
</item>
|
||||
</menu>
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
<menu 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"
|
||||
tools:context="fr.chteufleur.mytrackingdog.MainActivity">
|
||||
<item
|
||||
android:id="@+id/action_import_gpx"
|
||||
android:orderInCategory="100"
|
||||
android:title="@string/action_import_gpx"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_send_gpx_trail"
|
||||
android:orderInCategory="100"
|
||||
android:title="@string/action_send_gpx_trail"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_send_gpx_trail_by_xmpp"
|
||||
android:orderInCategory="100"
|
||||
android:title="@string/action_send_gpx_trail_by_xmpp"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_active_vibration_object"
|
||||
android:checkable="true"
|
||||
android:orderInCategory="100"
|
||||
android:title="@string/action_active_vibration_object"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_qr_code_generator"
|
||||
android:orderInCategory="100"
|
||||
android:title="@string/action_qr_code_generator"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_qr_code_reader"
|
||||
android:orderInCategory="100"
|
||||
android:title="@string/action_qr_code_reader"
|
||||
app:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/action_active_xmpp"
|
||||
android:checkable="true"
|
||||
android:orderInCategory="100"
|
||||
android:title="@string/action_active_xmpp"
|
||||
app:showAsAction="never" />
|
||||
</menu>
|
||||
|
|
@ -9,10 +9,11 @@
|
|||
|
||||
<string name="action_import_gpx">Import GPX</string>
|
||||
<string name="action_send_gpx_trail">Envoyer trace du traceur</string>
|
||||
<string name="action_send_gpx_trail_by_xmpp">Envoyer trace du traceur par XMPP</string>
|
||||
<string name="action_send_to">Envoyer par</string>
|
||||
<string name="action_active_vibration_object">Active vibration objets</string>
|
||||
<string name="action_qr_code_generator">Affiche identifiant</string>
|
||||
<string name="action_qr_code_reader">Lecture identifiant</string>
|
||||
<string name="menu_title_xmpp">XMPP</string>
|
||||
<string name="action_active_xmpp">Active XMPP</string>
|
||||
<string name="action_send_gpx_trail_by_xmpp">Envoyer trace du traceur par XMPP</string>
|
||||
</resources>
|
||||
|
|
|
|||
Loading…
Reference in New Issue