diff --git a/app/build.gradle b/app/build.gradle
index 46df4c4..484681f 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -32,17 +32,17 @@ repositories {
dependencies {
// android
- implementation 'com.google.android.material:material:1.0.0'
+ implementation 'com.google.android.material:material:1.1.0-beta01'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
+ implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
- implementation 'androidx.preference:preference:1.1.0-rc01'
+ implementation 'androidx.preference:preference:1.1.0'
// retrofit
implementation 'com.squareup.retrofit2:retrofit:2.6.1'
- implementation 'com.squareup.retrofit2:converter-gson:2.6.1'
+ implementation 'com.squareup.retrofit2:converter-gson:2.6.2'
implementation 'com.squareup.okhttp3:logging-interceptor:4.1.0'
// barcode reading
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index dd0814a..81375dd 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,9 @@
xmlns:tools="http://schemas.android.com/tools"
package="lu.circl.mispbump">
+
+
+
-
-
-
diff --git a/app/src/main/java/lu/circl/mispbump/activities/HomeActivity.java b/app/src/main/java/lu/circl/mispbump/activities/HomeActivity.java
index 64671eb..57e34a9 100644
--- a/app/src/main/java/lu/circl/mispbump/activities/HomeActivity.java
+++ b/app/src/main/java/lu/circl/mispbump/activities/HomeActivity.java
@@ -24,20 +24,15 @@ import lu.circl.mispbump.adapters.SyncInfoAdapter;
import lu.circl.mispbump.auxiliary.MispRestClient;
import lu.circl.mispbump.auxiliary.PreferenceManager;
import lu.circl.mispbump.interfaces.OnRecyclerItemClickListener;
-import lu.circl.mispbump.models.ExchangeInformation;
import lu.circl.mispbump.models.SyncInformation;
-import lu.circl.mispbump.models.restModels.MispServer;
-import lu.circl.mispbump.models.restModels.MispUser;
import lu.circl.mispbump.models.restModels.Organisation;
import lu.circl.mispbump.models.restModels.Role;
-import lu.circl.mispbump.models.restModels.Server;
import lu.circl.mispbump.models.restModels.User;
public class HomeActivity extends AppCompatActivity {
private PreferenceManager preferenceManager;
- private MispRestClient restClient;
private List syncInformationList;
private RecyclerView recyclerView;
@@ -56,8 +51,6 @@ public class HomeActivity extends AppCompatActivity {
setContentView(R.layout.activity_home);
preferenceManager = PreferenceManager.getInstance(this);
- Pair credentials = preferenceManager.getUserCredentials();
- restClient = MispRestClient.getInstance(credentials.first, credentials.second);
initViews();
initRecyclerView();
@@ -89,10 +82,6 @@ public class HomeActivity extends AppCompatActivity {
protected void onResume() {
super.onResume();
refreshRecyclerView();
-
- if (!preferenceManager.getShowLocalSyncsOnly()) {
- fetchRemoteSyncs();
- }
}
@@ -171,98 +160,4 @@ public class HomeActivity extends AppCompatActivity {
});
}
}
-
- private void fetchRemoteSyncs() {
- restClient.getAllServers(new MispRestClient.AllRawServersCallback() {
- @Override
- public void success(List mispServers) {
- if (mispServers.size() < 1) {
- return;
- }
-
- List syncInformationList = preferenceManager.getSyncInformationList();
-
- for (MispServer mispServer : mispServers) {
-
- boolean existsOffline = false;
-
- for (SyncInformation syncInformation : syncInformationList) {
- int localServerId = syncInformation.getRemote().getServer().getId();
- int remoteServerId = mispServer.getServer().getId();
-
- if (remoteServerId == localServerId) {
- existsOffline = true;
- break;
- }
- }
-
- if (!existsOffline) {
- // mispServer is not locally available
- SyncInformation syncInformation = new SyncInformation();
-
- ExchangeInformation local = new ExchangeInformation();
- local.setOrganisation(preferenceManager.getUserOrganisation().toSyncOrganisation());
- User syncUser = preferenceManager.getUserInfo().toSyncUser();
- syncUser.setAuthkey("Could not be recovered");
- syncUser.setPassword("Could not be recovered");
- local.setSyncUser(syncUser);
- local.setServer(new Server(preferenceManager.getUserCredentials().first));
-
- ExchangeInformation remote = new ExchangeInformation();
- remote.setServer(mispServer.getServer());
-
- restClient.getOrganisation(mispServer.getRemoteOrganisation().getId(), new MispRestClient.OrganisationCallback() {
- @Override
- public void success(Organisation organisation) {
- remote.setOrganisation(organisation);
-
- restClient.getAllUsers(new MispRestClient.AllMispUsersCallback() {
- @Override
- public void success(List users) {
- for (MispUser mispUser : users) {
-
- boolean isSyncUserRole = false;
-
- Role[] roles = preferenceManager.getRoles();
-
- for (Role role : roles) {
- if (role.getId().equals(mispUser.getRole().getId())) {
- isSyncUserRole = role.isSyncUserRole();
- break;
- }
- }
-
- if (mispUser.getOrganisation().getId().equals(organisation.getId()) && isSyncUserRole) {
- remote.setSyncUser(mispUser.getUser());
-
- syncInformation.setLocal(local);
- syncInformation.setRemote(remote);
-
- preferenceManager.addSyncInformation(syncInformation);
- refreshRecyclerView();
- }
- }
- }
- @Override
- public void failure(String error) {
- Snackbar.make(recyclerView, error, Snackbar.LENGTH_LONG).show();
- }
- });
- }
-
- @Override
- public void failure(String error) {
- Snackbar.make(recyclerView, error, Snackbar.LENGTH_LONG).show();
- }
- });
- }
- }
- }
-
- @Override
- public void failure(String error) {
- Snackbar.make(recyclerView, error, Snackbar.LENGTH_SHORT).show();
- }
- });
- }
}
diff --git a/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java b/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java
index cb57e39..e61dd6b 100644
--- a/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java
+++ b/app/src/main/java/lu/circl/mispbump/activities/PreferenceActivity.java
@@ -5,7 +5,9 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
+import android.view.MenuItem;
+import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
@@ -37,6 +39,17 @@ public class PreferenceActivity extends AppCompatActivity {
.commit();
}
+ @Override
+ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
+ if (item.getItemId() == android.R.id.home) {
+ onBackPressed();
+ return true;
+ }
+
+ return false;
+ }
+
+
public static class PreferencesFragment extends PreferenceFragmentCompat {
private Context context;
diff --git a/app/src/main/java/lu/circl/mispbump/activities/ProfileActivity.java b/app/src/main/java/lu/circl/mispbump/activities/ProfileActivity.java
index acef7bd..d847670 100644
--- a/app/src/main/java/lu/circl/mispbump/activities/ProfileActivity.java
+++ b/app/src/main/java/lu/circl/mispbump/activities/ProfileActivity.java
@@ -75,11 +75,15 @@ public class ProfileActivity extends AppCompatActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- if (item.getItemId() == R.id.menu_delete_profile) {
+ if (item.getItemId() == android.R.id.home) {
+ onBackPressed();
+ return true;
+ } else if (item.getItemId() == R.id.menu_delete_profile) {
clearDeviceAndLogOut();
+ return true;
}
- return super.onOptionsItemSelected(item);
+ return false;
}
diff --git a/app/src/main/java/lu/circl/mispbump/activities/SyncInfoDetailActivity.java b/app/src/main/java/lu/circl/mispbump/activities/SyncInfoDetailActivity.java
index 66280af..d95d69f 100644
--- a/app/src/main/java/lu/circl/mispbump/activities/SyncInfoDetailActivity.java
+++ b/app/src/main/java/lu/circl/mispbump/activities/SyncInfoDetailActivity.java
@@ -3,8 +3,11 @@ package lu.circl.mispbump.activities;
import android.content.Intent;
import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuItem;
import android.view.View;
+import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
@@ -25,6 +28,7 @@ public class SyncInfoDetailActivity extends AppCompatActivity {
public static String EXTRA_SYNC_INFO_UUID = "EXTRA_SYNC_INFO_UUID";
+ private UUID syncUUID;
private PreferenceManager preferenceManager;
private SyncInformation syncInformation;
@@ -42,10 +46,11 @@ public class SyncInfoDetailActivity extends AppCompatActivity {
setContentView(R.layout.activity_sync_info_detail);
preferenceManager = PreferenceManager.getInstance(SyncInfoDetailActivity.this);
- syncInformation = preferenceManager.getSyncInformation(getExtraUuid());
+ syncUUID = getExtraUuid();
+ syncInformation = preferenceManager.getSyncInformation(syncUUID);
if (syncInformation == null) {
- throw new RuntimeException("Could not find UploadInformation with UUID {" + getExtraUuid().toString() + "}");
+ throw new RuntimeException("Could not find UploadInformation with UUID {" + syncUUID + "}");
}
initToolbar();
@@ -53,6 +58,22 @@ public class SyncInfoDetailActivity extends AppCompatActivity {
populateContent();
}
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.menu_sync_detail, menu);
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(@NonNull MenuItem item) {
+ // preferenceManager.removeUploadInformation(syncUUID);
+ if (item.getItemId() == android.R.id.home) {
+ onBackPressed();
+ return true;
+ } else return item.getItemId() == R.id.menu_delete_sync;
+
+ }
+
@Override
protected void onPause() {
super.onPause();
diff --git a/app/src/main/java/lu/circl/mispbump/adapters/SyncInfoAdapter.java b/app/src/main/java/lu/circl/mispbump/adapters/SyncInfoAdapter.java
index e346686..e5a0d41 100644
--- a/app/src/main/java/lu/circl/mispbump/adapters/SyncInfoAdapter.java
+++ b/app/src/main/java/lu/circl/mispbump/adapters/SyncInfoAdapter.java
@@ -53,7 +53,7 @@ public class SyncInfoAdapter extends RecyclerView.Adapter onRecyclerPositionClickListener.onClick(view, position));
}
diff --git a/app/src/main/java/lu/circl/mispbump/auxiliary/MispRestClient.java b/app/src/main/java/lu/circl/mispbump/auxiliary/MispRestClient.java
index 68350ed..352873f 100644
--- a/app/src/main/java/lu/circl/mispbump/auxiliary/MispRestClient.java
+++ b/app/src/main/java/lu/circl/mispbump/auxiliary/MispRestClient.java
@@ -60,7 +60,7 @@ public class MispRestClient {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(GsonConverterFactory.create())
- .client(getCustomClient(true, true, authkey))
+ .client(getCustomClient(false, false, authkey))
.build();
mispService = retrofit.create(MispService.class);
diff --git a/app/src/main/res/layout/activity_sync_info_detail.xml b/app/src/main/res/layout/activity_sync_info_detail.xml
index d893df2..4a347f4 100644
--- a/app/src/main/res/layout/activity_sync_info_detail.xml
+++ b/app/src/main/res/layout/activity_sync_info_detail.xml
@@ -3,6 +3,7 @@
+ android:title="Delete Profile" />
diff --git a/app/src/main/res/menu/menu_sync_detail.xml b/app/src/main/res/menu/menu_sync_detail.xml
new file mode 100644
index 0000000..29333ef
--- /dev/null
+++ b/app/src/main/res/menu/menu_sync_detail.xml
@@ -0,0 +1,9 @@
+
+